String类常用方法的总结

String类:代表字符串.

  1. 字符串是常量,值在创建之后不能被修改.
  2. 因为String对象是不可变的,所以可以共享.
String str = "abc";
//相当于
char[] data = {'a','b','c'};
String strData = new String(data);

API常用方法:

  • JDK8引入的:codePoints():将这个字符串的码点作为一个流返回,调用toArray()方法,将他们放在一个数组里
String str = "hello";
IntStream intStream = str.codePoints();
System.out.println(intStream.toString());
int[] array = intStream.toArray();
for (int a : array){
    System.out.println(a);
}
  • JDK8引入的:join(CharSequence delimiter, CharSequence… elements):返回一个新字符串,用给定的定界符连接所有元素.
String str3 = String.join("^","aaa","BBB","ccc");
System.out.println("Java8->:"+str3);//Java8->:aaa^BBB^ccc
  • charAt(int index):返回指定索引处的字符
String str = "Hello";
char c = str.charAt(4);
System.out.println(c);//o
  • concat(String str):将指定的字符串连接到此字符串的结尾,返回一个字符串
String str = "hello";
String str1 = "word";
String newStr = str.concat(str1);
System.out.println(newStr);//helloword
  • contains(CharSequence s):判断是否包含该字符,如果包含,返回true;否则,返回false.
    • CharSequence:可以理解为字符串类型
String str = "hello";
boolean isCon = str.contains("l");
System.out.println(isCon);//true
  • copyValueOf(char[] data):返回指定数组中字符序列的String
  • copyValueOf(char[] data, int offset, int count):返回指定数组中表示该字符序列的 String
  • 将数组转换为字符串
char[] chars = {'a','d','b'};
String str = String.copyValueOf(chars);
System.out.println(str);//adb
String str1 = String.copyValueOf(chars,1,1);
System.out.println(str1);//d

//使用String的构造函数也可以
String str2 = new String(chars);
System.out.println(str2);//adb
  • endsWith(String suffix):判断字符串是否以指定的后缀结尾
String str = "hello";
boolean isSuf = str.endsWith("llo");
System.out.println(isSuf);//true
  • equals(Object anObject):判断此字符串是否与指定对象相等.常用来比较两个字符串.
String str = "hello";
boolean isEq = "hello".equals(str);
System.out.println(isEq);//true
  • equalsIgnoreCase(String anotherString):将此String与另一个String比较,不考虑大小写.
String str = "hello";
boolean isEq = "HELLO".equalsIgnoreCase(str);
System.out.println(isEq);//true
  • getBytes(): 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
String str = "hello";
byte[] bytes = str.getBytes();
System.out.println(Arrays.toString(bytes));//[104, 101, 108, 108, 111]
  • hasCode():返回此字符串的哈希码
String str = "hello";
int strInt = str.hashCode();
System.out.println(strInt);//99162322
  • indexOf(char c):返回指定字符第一次出现的索引
String str = "hello";
int strInt = str.indexOf('l');
System.out.println(strInt);//2
  • lastIndexOf(int ch):返回指定字符在此字符串中最后一次出现处的索引。
String str = "hello";
int strInt = str.lastIndexOf('l');
System.out.println(strInt);//3
  • length():返回字符串的长度
String str = "hello";
int strInt = str.length();
System.out.println(strInt);//5
  • replace(char oldChar, char newChar):返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
  • replace(CharSequence target, CharSequence replacement):使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
String str = "hello";
String newStr =str.replace("ll","LL");
System.out.println(newStr);//heLLo
  • startsWith(String prefix):判断此字符串是否以指定的前缀开始。
String str = "hello";
boolean isStart = str.startsWith("h");
System.out.println(isStart);//true
  • subString(int beginIndex):从指定索引处开始截取以后的字符串.
  • substring(int beginIndex, int endIndex):返回一个新字符串,它是此字符串的一个子字符串。
  • 注意:范围是左闭右开,也就是说包含beginIndex,不包含endIndex
String str = "hello";
String newStr = str.substring(2,4);
System.out.println(newStr);//ll
  • toCharArray():将此字符串转换为一个新的字符数组。
String str = "hello";
char[] chars = str.toCharArray();
System.out.println(Arrays.toString(chars));//[h, e, l, l, o]
  • toLowerCase():将所有字符转小写
  • toUpperCase():将所有字符转大写
String str = "hello";
String newStr =  str.toUpperCase();
System.out.println(newStr);//HELLO
String newStr1 = newStr.toLowerCase();
System.out.println(newStr1);//hello
  • toString():返回此对象本身(它已经是一个字符串了)
  • trim():去掉字符串的首尾空白
String str = "   hello   ";
String newStr =  str.trim();
System.out.println(newStr);//hello
  • valueOf(基本数据类型或Object o) 返回对应基本数据类型或Object的字符串形式
int str = 45;
String newStr = String.valueOf(str);
System.out.println(newStr);//45
char[] chars = {'a','d','b'};
String newStr1 = String.valueOf(chars);
System.out.println(newStr1);//adb
  • isEmpty():判断是否为空
String str ="hhhh";
boolean isEm = str.isEmpty();
System.out.println(isEm);//false

你可能感兴趣的:(JavaSE)