1. 描述: String类是java中比较常用的类, 表示字符串类型
当拼接大量数据时, String类性能没有StringBuilder和StringBuffer性能高
2. 常用的String语法:
import org.junit.Test; public class StringTest { @Test public void testString() { String s1 = new String("AA"); System.out.println(s1); // AA String s2 = "AA"; System.out.println(s2); // AA // 获取字符串某个索引位置的字符 char c = "abcd".charAt(2); System.out.println(c); // c // 拼接字符串 String s3 = "abc".concat("123"); String s4 = "abc" + 123; String s5 = String.format("%s啊啊撒%d", "abc", 123); System.out.println(s3); // abc123 System.out.println(s4); // abc123 System.out.println(s5); // abc啊啊撒123 // 判断字符串是否包含指定的字符 boolean b1 = "azxc".contains("x"); boolean b2 = "azxc".contains("s"); System.out.println(b1 + "-----" + b2); // true-----false // 判断字符串是否 以...结尾 boolean b3 = "azxc".endsWith("xc"); System.out.println(b3); // true // 判断字符串是否相等 boolean b4 = "az".equals("az"); boolean b5 = "az".equals("aZ"); System.out.println(b4 + "----" + b5); // true-----false // 判断字符串是否相等(忽略大小写) boolean b6 = "ac".equalsIgnoreCase("Ac"); System.out.println(b6); // true // 获取字符串长度 int length = "abc".length(); System.out.println(length); // 3 // 正则匹配 String regex = "\\d+"; boolean b7 = "123".matches(regex); System.out.println(b7); // true String regex1 = "[a-zA-Z]+"; boolean b8 = "aaBFc".matches(regex1); System.out.println(b8); // true String regex2 = "^a.*"; boolean b = "aabFdx".matches(regex2); System.out.println(b); // true String regex3 = "^a.*d$"; boolean b9 = "aabFda".matches(regex3); System.out.println(b9); // false // 字符串替换 String s = "aabxdsca".replace('a', '2'); System.out.println(s); // 22bxdsc2 // 将字符串以...分割成字符串数组 String regex4 = "\\d+"; String[] strArr = "aa12bbyb34asd".split(regex4); for (String s6 : strArr) { System.out.println(s6); /** * aa * bbyb * asd */ } // 以...开头 boolean b10 = "cmfdsaaa".startsWith("cm"); System.out.println(b10); // true // 从指定位置截取到字符串末尾 String s6 = "abcdefg".substring(2); System.out.println(s6); // cdefg // 字符串从指定的开始位置截取到指定的结束位置 String s7 = "asdffgeaszx".substring(2, 6); System.out.println(s7); // dffg // 将字符串转换成小写 String s8 = "ACDdsx".toLowerCase(); // 将字符串转换成大写 String s9 = "ACDdsx".toUpperCase(); System.out.println(s8); // acddsx System.out.println(s9); // ACDDSX // 将字符串两端的空格去掉,中间的空格不会去掉 String s10 = " dud sda sad ".trim(); System.out.println(s10); // dud sda sad // 将int类型转换成字符串 String s11 = String.valueOf(1024); System.out.println(s11); // 1024 } /** * StringBuilder 拼接字符串速度最快, 线程不安全,因为底层方法没有用synchronized修饰 */ @Test public void testStringBuilder() { StringBuilder sb = new StringBuilder(); sb.append("aa").append("vss").append(13).append("adsa").append("dfsfd").toString(); String s = sb.toString(); System.out.println(s); // aavss13adsadfsfd } /** * StringBuffer 拼接字符串速度比较快, 线程安全, 底层方法都是用synchronized修饰
* , 用synchronized修饰表示线程安全,但是速度没那么快 */ @Test public void testStringBuffer() { StringBuffer sb = new StringBuffer(); sb.append("aa").append("asdas").append(123).toString(); String s = sb.toString(); System.out.println(s); // aaasdas123 } }