【java基础】String类的常用方法

String类的常用方法

  • split()切分字符串
  • contains()计算字符串个数
  • equals()和==比较
  • +、StringBuilder和StringBuffer拼接字符串

split()切分字符串

String a="测试1测试1测试";
String b=1;
String c[]=a.split(b);//用b对a进行切分并将结果放入数组c[];
//此时数组c[]的内容如下:{测试,测试,测试}

String a="测试1测试1";
String b=1;
String c[]=a.split(b);//用b对a进行切分并将结果放入数组c[];
//此时数组c[]的内容如下:{测试,测试}

contains()计算字符串个数

string a="测试1测试1测试1"
string b="1"
int count =0;
while(a.contains(b)){                  //判断a是否包括b
      int index=a.indexOf(b);     //搜索字符b,如果返回值不是-1,则代表找到了,返回字符所在位置。用来查找字符串出现的位置。第一次循环中,index=3
      int len=b.length();              //获得字符串的长度,此处为2
      a=a.substring(index+len);    //将a字符串重新赋值为,截取掉(index+len)部分之后剩余的字符串。第一次循环后,a="测试1测试1"
      count++;
}
system.out.printIn("a中b的个数为:"+count+“个”); 

equals()和==比较

//==是引用的比较,equals是值的比较
String a = new String("hello");//标准的String定义方式
String b = new String("hello");
system.out.printIn(a==b);
//输出结果为false,因为==是引用的比较,此处比较的是a和b,而不是a和b的值,他们创建了两个对象,引用的是不同的对象。
system.out.printIn(a.equals(b));
//输出结果为true,用a.equals(b)比较的就是a和b的值。

String a="hello";  //String的享元模式,享元模式的用法并不等于new的定义
String b="hello";
system.out.printIn(a==b);
输出结果为true,享元模式的应用,在定义a和b时,会把a和b同时指向“hello”,也就是说a和b都是引用同一个对象,所以结果为true

+、StringBuilder和StringBuffer拼接字符串

String s="abcd";
s=s+"test";
//输出:abcdtest
//string等于创建了两次对象,等于new了两次,一次是adbc,一次是test

//将a和b的值合并,此时a和b必须是同类型,效果等于a+b,但使用a+b不要求a和b必须要是同类型的。
a.concat(b);

//StringBuilder是非线程安全的,效率更高
StringBuilder s=new StringBuilder("abcd");
s.append("test");
输出:abcdtest
//stringbuilder只会创建一个对象,只new了一次,在一个对象中创建不同的值,效率更高

//StringBuffer是线程安全的,效率低于StringBuilder,同一时刻只有一个线程可以访问该方法
StringBuffer s=new StringBuffer("abcd");
b.append("test");

你可能感兴趣的:(java)