MENU

String、StringBuffer、StringBuilder

June 5, 2018 • Read: 228 • Java

<center>String</center>

  1. 字符串关系运算符"=="比较的是该字符在堆内存中的地址。而使用equals()方法则比较的是内容
String str1 = "Hello";
String str2 = new String("Hello");
System.out.println(str1 == str2);//false
System.out.println(str1.equals(str2));//true

image

  1. String字符串是不可更改的,对字符串进行算术运算会在堆内存中开辟新的空间,而运算之前栈内存中的变量指向的堆内存地址是不变的,改变的是新的地址和内容
String str1 = "Hello";
String str2 = str1 + " World";
System.out.println(str2);//Hello World

image

  1. 字符串Length()方法获取String变量的长度,与数组不同,数组是Length变量
  2. 将字符串转换成数组:toCharArray()
String str = "abcdefg";
char c[] = str.toCharArray();
  1. 从字符串中取出指定位置的字符:charAt()(从0开始)
  2. 过滤字符串中存在的字符:indexOf(),返回的值是下标
String str = "abcdefg";
System.out.println(str.indexOf("d"));//3
  1. 去掉字符串的首尾空格字符:trim()
String str = "   111  ";
System.out.println(str.trim());//111
  1. 从字符串中取出子字符串:subString()
  2. 大小写转换:toLowerCase() toUpperCase()
  3. 判断字符串的开头结尾字符:endsWith() startWith()
  4. 替换String字符串中的一个字符:replace()

<center>StringBuffer</center>

 缓冲区,本身也是操作字符串,但是与String不同,StringBuffer是可以更改的

  1. append():将参数追加到序列中
  2. insert():有两个参数,第一个参数表示插入的位置,第二个参数表示插入的值
  3. replace(int start,int end,String str):从start开始,直到end(不包含end)的字符串用str替换,如果长度不够,就直到结尾
  4. toString():返回此序列的字符串表示形式,StringBuffer不能直接输出,要转换成String类型然后输出

<center>StringBuilder</center>

 一个可变的字符序列,该类被设计作用StringBuffer的简易替换,用在字符串缓冲区被单个线程使用的时候。建议优先考虑该类,速度比StringBuffer要快。但是如果涉及到线程安全方面,建议使用StringBuffer

Archives Tip
QR Code for this page
Tipping QR Code
Leave a Comment