字符串的使用(string,StringBuffer,StringBuilder)

String中==与equals的区别:
==比较字符串中的引用相等
equals比较字符串中的内容相等(因为字符串有重写equals方法)

string常用的方法

返回类型

方法

操作功能

Char

charAt(int index)

返回字符串中指定索引处的字符

Int

indexOf(char ch)

返回指定字符在字符串中第一次出现的索引

Int 

lastIndexOf(char ch)

返回指定字符在字符串中最后出现的索引

string

Substring(int beginIndex,int endIndex)

从字符串的开始beginIndex到结束endIndex处返回一个新的字符串

string

Concat(string str)

将指定字符串连接到字符串的末尾

string

Replace(char old,char new)

用新的字符替代旧的字符

String[]

Split(string str)

根据字符串来拆分字符串

string

Trim()

清除结尾后面的空格

Int

compareTo(string str)

比较,按字母顺序进行排序,如果两个字符相等返回0

                

StringBuffer常用的方法

返回类型

方法

备注

stringBuffer

Insert()

在指定位置添加字符串

Int

Length()

长度

Void

setCharAt(int pos,char ch)

使用新的字符ch设置到指定的位置上

String

toString()

转换成字符串

StringBuffer

Reverse()

反序

StringBuffer

Delete(int start,int end)

删除指定位置上字符串

stringBuffer

deleteCharAt(int pos)

删除从指定的位置到末尾的字符

StringBuffer

Replace(int start,int end,string str)

使用一组字符串替换另一组字符串

例子:

/************ String中的equals与== *****************/
 /*
  * ==比较字符串中的引用相等
  * equals比较字符串中的内容相等(因为字符串有重写equals方法)
  */
// public static void main(String[] args) {
//  String s1 = new String("abc");
//  String s2 = new String("abc");
//  System.out.println(s1.equals(s2));// true
//  System.out.println(s1 == s2);// false
//
//  String s3 = new String("aaaa");
//  String s4 = s3;// s3把引用赋值给s4
//  System.out.println(s3.equals(s4));// true
//  System.out.println(s3 == s4);// true
// }

String与StringBuffer的不同点: 1、String类是不可改变的,而StringBuffer类是可变的 可修改的

2、String类覆盖了Object的equals方法,而StringBuffer没有

3、String类可以使用”+”进行连接,    而StringBuffer对象之间不能通过”+”进行连接使用append方法进行连接

例子

 /**************StringBuffer的使用*****************/
// public static void main(String[] args) {
//  //String不可以修改字符串
//  String str = "abc";//创建一个字符串对象
//  str = "aaa";//创建一个新的字符串
//  str = str+"www";//还是创建了一个新的字符串
//  
//  //StringBuffer可修改字符串
//  StringBuffer buffer = new StringBuffer();
//  System.out.println("大小:"+buffer.length());
//  System.out.println("容量:"+buffer.capacity());
//  buffer.append("abc");//追加字符串
//  System.out.println("大小:"+buffer.length());
//  System.out.println("容量:"+buffer.capacity());
//  buffer.append("ddd");
//  System.out.println("容量:"+buffer.capacity());
//  buffer.append("wwwwwwwwwwwwwww");
//  System.out.println("容量:"+buffer.capacity());
// 
//  StringBuffer strBuffer1 = new StringBuffer("www");
//  StringBuffer strBuffer2 = new StringBuffer("www");
//  //StringBuffer没有重写equals方法所以比较的是引用是否相等
//  System.out.println(strBuffer1.equals(strBuffer2));
// }

StringBuilder类与StringBuffer类:
StringBuilder也是一个操作字符串的类,它与StringBuffer的功能是一样的,
主要区别在于,StringBuilder是非线程安全的,StringBuffer是
线程安全的,所以StringBuilder效率要高,在使用过程中,要根据具体的
情况考虑,如果环境对线程安全没要求,就可以使用StringBuilder

原文地址:https://www.cnblogs.com/danmao/p/3810372.html