MENU

String、StringBuffer、StringBuilder

June 5, 2018 • Read: 2844 • Java阅读设置

String

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

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

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

StringBuffer

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

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

StringBuilder

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

Last Modified: February 8, 2020
Archives Tip
QR Code for this page
Tipping QR Code
Leave a Comment