| import java.nio.charset.Charset; |
| import java.util.*; |
| |
| class A { |
| void constructors() throws Exception { |
| new String(); |
| // TODO: new String("original"); |
| new String(new char[] {'a', 'b', 'c'}); |
| new String(new char[] {'b', 'd'}, 1, 1); |
| new String(new int[] {32, 65, 127}, 0, 3); |
| |
| byte[] bytes = new byte[] {32, 65, 100, 81}; |
| Charset charset = Charset.forName("utf-8"); |
| new String(bytes); |
| new String(bytes, charset); |
| new String(bytes, 0, 2); |
| new String(bytes, "utf-8"); |
| new String(bytes, 0, 2, "utf-8"); |
| new String(bytes, 0, 2, charset); |
| |
| new String(new StringBuilder("content")); |
| new String(new StringBuffer("content")); |
| } |
| |
| void normalMethods() { |
| String s = "test string"; |
| s.length(); |
| s.isEmpty(); |
| s.charAt(1); |
| s.codePointAt(2); |
| s.codePointBefore(2); |
| s.codePointCount(0, s.length()); |
| s.offsetByCodePoints(0, 4); |
| s.compareTo("test 2"); |
| s.contains("seq"); |
| s.contentEquals(new StringBuilder(s)); |
| s.contentEquals(new StringBuffer(s)); |
| s.endsWith("ng"); |
| s.startsWith("te"); |
| s.startsWith("st", 2); |
| s.indexOf("st"); |
| s.indexOf("st", 5); |
| s.lastIndexOf("st"); |
| s.lastIndexOf("st", 4); |
| s.indexOf('t'); |
| s.indexOf('t', 5); |
| s.lastIndexOf('t'); |
| s.lastIndexOf('t', 5); |
| s.substring(1); |
| s.substring(0, 4); |
| s.subSequence(0, 4); |
| s.replace('e', 'i'); |
| s.replace("est", "oast"); |
| s.intern(); |
| s.toLowerCase(); |
| s.toLowerCase(Locale.FRENCH); |
| s.toUpperCase(); |
| s.toUpperCase(Locale.FRENCH); |
| |
| s.toString(); |
| s.toCharArray(); |
| } |
| |
| void specialMethods() throws Exception { |
| String s = "test string"; |
| s.equals("test"); |
| s.equalsIgnoreCase( |
| "tesT" |
| ); |
| s.compareToIgnoreCase("Test"); |
| s.regionMatches( |
| true, |
| 0, |
| "TE", |
| 0, |
| 2 |
| ); |
| s.regionMatches(0, "st", 1, 2); |
| s.replaceAll("\\w+", "---") |
| .replaceFirst("([s-t])", "A$1"); |
| /* TODO |
| s.matches("\\w+"); |
| useSplit(s.split("\\s+")); |
| useSplit(s.split("\\s+", 0)); |
| useSplit(s.split("\\s+", -1)); |
| useSplit(s.split("\\s+", 2)); |
| int limit = 5; |
| useSplit(s.split("\\s+", limit)); |
| */ |
| s.trim(); |
| s.concat(" another"); |
| |
| s.getBytes(); |
| s.getBytes(Charset.forName("utf-8")); |
| s.getBytes("utf-8"); |
| |
| char[] chars = new char[10]; |
| s.getChars(1, 11, chars, 0); |
| } |
| |
| void staticMethods() { |
| String.valueOf(1); |
| String.valueOf(1L); |
| String.valueOf('a'); |
| String.valueOf(true); |
| String.valueOf(1.11F); |
| String.valueOf(3.14); |
| String.valueOf(new Object()); |
| |
| String.format( |
| Locale.FRENCH, |
| "Je ne mange pas %d jours", |
| 6 |
| ); |
| String.format("Operation completed with %s", "success"); |
| |
| char[] chars = {'a', 'b', 'c'}; |
| String.valueOf(chars); |
| String.valueOf(chars, 1, 2); |
| String.copyValueOf(chars); |
| String.copyValueOf(chars, 1, 2); |
| |
| Comparator<String> order = String.CASE_INSENSITIVE_ORDER; |
| } |
| |
| void unsupportedMethods() { |
| String s = "test string"; |
| /* TODO: |
| s.indexOf(32); |
| s.indexOf(32, 2); |
| s.lastIndexOf(32); |
| s.lastIndexOf(32, 2); |
| */ |
| } |
| |
| void useSplit(String[] result) { |
| } |