public class StringTest { @Test public void test01(){ String str1="abcd"; String str2="ABCD"; System.out.println("字符串的长度:"+str1.length()); System.out.println("比较两个字符串的内容:"+str1.equals(str2)); System.out.println("比较两个字符串的内容(忽略大小写):"+str1.equalsIgnoreCase(str2)); System.out.println("把str1变成大写:"+str1.toUpperCase()); System.out.println("把str2变成小写:"+str1.toLowerCase()); } @Test public void test02(){ String str1="abcd"; //把字符串转换成 字符数组 char[] arrays = str1.toCharArray(); for (int i = 0; i < arrays.length; i++) { System.out.println(arrays[i]); } } @Test public void test03(){ String str1="a+b+c+d"; // ^[0-9]{11}$ 正则表达式 !! //根据指定的规则 把字符串拆分成 字符串 数组 String[] split = str1.split("\+"); for (int i = 0; i < split.length; i++) { System.out.println(split[i]); } } @Test public void test04(){ String str1="12345@qq.com"; //查询@在字符串中出现的位置 int index=str1.indexOf("@"); //下标从0开始 System.out.println("@在字符串中出现的位置:"+index); //查询q在字符串中最后一次出现的位置 int index2=str1.lastIndexOf("q"); System.out.println("q在字符串中最后一次出现的位置:"+index2); //获取@之后的所有字符串 subString(int beginIndex) 包含beginIndex System.out.println("获取@之后的所有字符串:"+str1.substring(index+1)); /* * 查询 qq * subString(int beginIndex,int endIndex) * 01.找到点的位置 * 02.不包含 endIndex */ int index3=str1.indexOf("."); String result = str1.substring(index+1, index3); System.out.println("result====>"+result); } @Test public void test05(){ String str1=" abc def "; System.out.println("空格计算长度:"+str1.length()); //去除字符串两边的空格 str1=str1.trim(); System.out.println("去除空格之后内容:"+str1); System.out.println("去除空格之后:"+str1.length()); } @Test public void test06(){ String str1="abcdef"; //把a替换成6 str1 = str1.replace("a", "6"); System.out.println(str1); //是否以6开始 System.out.println("是否以6开始:"+str1.startsWith("6")); System.out.println("是否以a结尾:"+str1.endsWith("a")); } @Test public void test07(){ String str1="abcdef"; //截取一个字符 返回值是char char a =str1.charAt(3); System.out.println(a); } @Test public void test08(){ String str1="abcdef"; //将字符存储在字节数组中 byte[] bytes = str1.getBytes(); for (byte b : bytes) { System.out.println((char)b); } } @Test public void test09(){ String str1="abc"; String str2="def"; //之前的字符串相加 System.out.println(str1+str2); //现在concat(String str) System.out.println(str1.concat(str2)); } @Test public void test10(){ String str1="abc"; //是否包含某个指定的字符 System.out.println("是否包含a这个字符:"+str1.contains("a")); } }
String,StringBuffer,StringBuilder三者区别
/* * String, StringBuffer ,StringBuilder三者的区别 * 01.在执行速度 * StringBuilder > StringBuffer > String * 02.StringBuilder:多线程不安全,适合单线程 * StringBuffer:线程安全 * String : 数据量小的时候使用 * 03.String 是不可变的! 每当我们操作字符串的时候,都会创建一个新的对象! * StringBuilder,StringBuffer当我们操作字符串的时候,实际上是在操作一个对象! */ @Test public void test11(){ //01.定义变量 String name="xiaohei"; //02.定义操作字符串的次数 int count=2000000; //03.设置开始时间 long beginTime=System.currentTimeMillis(); for (int i = 0; i <count/100; i++) { name+="haha"; } //03.设置结束时间 long endTime=System.currentTimeMillis(); System.out.println("String的执行时间:"+(endTime-beginTime)); System.out.println("****************************"); name="xiaohei"; //04.使用StringBuffer StringBuffer buffer=new StringBuffer(name); beginTime=System.currentTimeMillis(); for (int i = 0; i <count; i++) { buffer=buffer.append("haha"); } endTime=System.currentTimeMillis(); System.out.println("StringBuffer的执行时间:"+(endTime-beginTime)); System.out.println("****************************"); name="xiaohei"; //05.使用StringBuilder StringBuilder builder=new StringBuilder(name); beginTime=System.currentTimeMillis(); for (int i = 0; i <count; i++) { builder=builder.append("haha"); } endTime=System.currentTimeMillis(); System.out.println("StringBuilder的执行时间:"+(endTime-beginTime)); }