package stringOftenMethods; import java.util.Arrays; import java.util.List; import org.junit.Test; /** * 1、和长度有关的方法 返回类型 方法名 作用 int length() 得到一个字符串的字符个数(一个中文是一个字符,一个英文是一个字符,一个转义字符是一个字符) 2、和数组有关的方法 返回类型 方法名 作用 byte[] getBytes() 将一个字符串转换成字节数组 char[] toCharArray() 将一个字符串转换成字符数组 String[] split(String) 将一个字符串按照指定内容劈开 3、和判断有关的方法 返回类型 方法名 作用 boolean equals(String) 判断两个字符串的内容是否一模一样 boolean equalsIgnoreCase(String) 忽略大小写的比较两个字符串的内容是否一模一样 boolean contains(String) 判断一个字符串里面是否包含指定的内容 boolean startsWith(String) 判断一个字符串是否以指定的内容开头 boolean endsWith(String) 判断一个字符串是否以指定的内容结尾 4、和改变内容有关的方法 和改变内容有关的方法,都不会直接操作原本的字符串 而是将符合条件的字符串返回给我们,所以注意接收 返回类型 方法名 作用 String toUpperCase() 将一个字符串全部转换成大写 String toLowerCase() 将一个字符串全部转换成小写 String replace(String,String) 将某个内容全部替换成指定内容 String replaceAll(String,String) 将某个内容全部替换成指定内容,支持正则 String repalceFirst(String,String) 将第一次出现的某个内容替换成指定的内容 String substring(int) 从指定下标开始一直截取到字符串的最后 String substring(int,int) 从下标x截取到下标y-1对应的元素 String trim() 去除一个字符串的前后空格 5、和位置有关的方法 返回类型 方法名 作用 char charAt(int) 得到指定下标位置对应的字符 int indexOf(String) 得到指定内容第一次出现的下标 int lastIndexOf(String) 得到指定内容最后一次出现的下标 * */ public class StringMethodsTest{ // charAt():截取一个字符 // substring():截取字段长度 [3,4) [6 // substring(i,j) : [i,j) // substring(i) : 从第i位开始 [i @Test public void testCharAt(){ String str = "accident-property"; char a = str.charAt(3); String b = str.substring(3, 4); String c = str.substring(6); //i : i : nt-property System.out.println(a + " : " + b + " : " + c); } // 将字符转换成字符串 @Test public void test(){ char[] ch={'a','b','c','d'}; // String c=new String(ch); String c1=new String(ch,2,1); // abcd : c System.out.println(c + " : "+ c1); } // 输出的结果为Hello,其中第一个参数0是要截取的字符串的初始下标(int // sourceStart),第二个参数5是要截取的字符串的结束后的下一个下标(int sourceEnd)也就是实际截取到的下标是int // sourceEnd-1,第三个参数是接收的字符串(char target[]),最后一个参数是接收的字符串开始接收的位置。 @Test public void getCharTest(){ String a = "Hello Word"; char[] b = new char[10]; a.getChars(0, 5, b, 0); // Hello System.out.println(b); } // getBytes()将字符串变成一个byte数组 @Test public void getBytesTest(){ String a = "Hello Word"; byte b[] = a.getBytes(); // Hello Word System.out.println(new String(b)); } // toCharArray()将字符串变成一个字符数组 @Test public void toCharArrayTest(){ String a = "Hello Word"; char[] b = a.toCharArray(); // Hello Word System.out.println(b); List c = Arrays.asList(new String(b)); // [Hello Word] System.out.println(c); } // equals()和equalsIgnoreCase()比较两个字符串是否相等,前者区分大小写,后者不区分 @Test public void equalsTest(){ String a = "Hello Word"; String b = "hello word"; // false System.out.println(a.equals(b)); // true System.out.println(a.equalsIgnoreCase(b)); } // startsWith()和endsWith()判断字符串是不是以特定的字符开头或结束 @Test public void withTest(){ String a = "Hello Word"; // true System.out.println(a.startsWith("He")); // true System.out.println(a.endsWith("rd")); } // toUpperCase()和toLowerCase()将字符串转换为大写或小写 @Test public void caseTest(){ String a = "Hello Word"; // HELLO WORD System.out.println(a.toUpperCase()); // hello word System.out.println(a.toLowerCase()); } // concat() 连接两个字符串 @Test public void concatTest(){ String a = "Hello Word"; String b = "你好"; // 你好Hello Word System.out.println(b.concat(a)); } // trim()去掉起始和结束的空格 @Test public void trimTest(){ String a = " Hello Word "; // Hello Word System.out.println(a.trim()); } // indexOf()和lastIndexOf()前者是查找字符或字符串第一次出现的地方,后者是查找字符或字符串最后一次出现的地方 @Test public void indexOfTest(){ String a = "Hello Word"; // 4 System.out.println(a.indexOf("o")); // 7 System.out.println(a.lastIndexOf("o")); } // compareTo()和compareToIgnoreCase()按字典顺序比较两个字符串的大小,前者区分大小写,后者不区分 @Test public void compareToTest(){ String a = "Hello Word"; String b = "hello word"; // -32 System.out.println(a.compareTo(b)); // 0 System.out.println(a.compareToIgnoreCase(b)); } // replace(i,j) 将所有的i,替换成j // replaceFirst(i,j) 将第一个的o替换成A // replaceAll(i,j) 将所有的o替换成A @Test public void replaceTest(){ String a = "Hello Word"; String b = "你好"; // 你好 System.out.println(a.replace(a, b)); // LLO WORD System.out.println(a.replace(a, "LLO WORD")); // 大家好 System.out.println(b.replace("你", "大家")); // HellA Word System.out.println(a.replaceFirst("o", "A")); // HellA WArd System.out.println(a.replaceAll("o", "A")); } // 将字符串转化为基本数据类型,用Int.parseInt(string),包括Byte、Short、Integer、Float、Double类 @Test public void parseTest(){ String n3="12.34"; float n1=Float.parseFloat(n3); double n2=Double.parseDouble(n3); // 12.34 System.out.println(n1); // 12.34 System.out.println(n2); } // Arrays.toString() 把结果转化为字符串数组 @Test public void test01() { String[] str1 = new String[] { "b", "c" }; String[] str2 = new String[2]; str2[1] = "dd"; // 不能整体定义 // [Ljava.lang.String;@bfbdb0 System.out.println(str1.toString()); // [b, c] System.out.println(Arrays.toString(str1)); } @Test public void stringBufferTest(){ StringBuilder sb=new StringBuilder(); // 追加字符串或字符 sb.append("wawa"); sb.append("hhhh"); // wawahhhh System.out.println(sb); // 在第三个位置插入i sb.insert(2,"i"); // waiwahhhh System.out.println(sb); // 删除了第4,5个字符 sb.delete(4,6); // waiwhhh System.out.println(sb); } }