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.matches("\\w+"); s.replaceAll("\\w+", "---") .replaceFirst("([s-t])", "A$1"); 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) {} }