Java-字符串

147 阅读2分钟

一. String

public final class String implements java.io.Serializable, Comparable, CharSequence

  1. String是final类型,是常量,在创建后无法被修改。String类中看起来会修改String的得方法,实际上都是创建一个全新的String对象,来包含修改后的字符串内容,而最初的String值一直未变。
    String originStr = "abc";
    System.out.println("originStr = " + originStr);
    String newStr = originStr.toUpperCase();
    System.out.println("newStr = " + newStr);
    System.out.println("originStr = " + originStr);

    结果输出:
    originStr = abc
    newStr = ABC
    originStr = abc

2. String可以直接用+和+=运算符(+和+=是String类重载过的操作符)

    System.out.println(12 + originStr + 23);
    System.out.println(originStr + 12 + 23);
    System.out.println(12 + 23 + originStr);

    结果输出:
    12abc23
    abc1223
    35abc

二. String方法总结

判断字符串是否为空 - public boolean isEmpty()

获取字符串长度 - public int length()

取子字符串 :
public String substring(int beginIndex)
public String substring(int beginIndex, int endIndex)

在字符串中查找字符或子字符串,返回第一个找到的索引位置,没找到返回-1 :
public int indexOf(int ch)
public int indexOf(String str)

判断字符串是否以给定子字符串开头 - public boolean startsWith(String prefix)
判断字符串是否以给定子字符串结尾 - public boolean endsWith(String suffix)
所有字符转换为大写字符,返回新字符串,原字符串不变 - public String toUpperCase()
所有字符转换为小写字符,返回新字符串,原字符串不变 - public String toLowerCase()

字符串连接,返回当前字符串和参数字符串合并后的字符串,原字符串不变 :
public String concat(String str)

字符串替换,替换单个字符,返回新字符串,原字符串不变:
public String replace(char oldChar, char newChar)

字符串替换,替换字符序列,返回新字符串,原字符串不变:
public String replace(CharSequence target, CharSequence replacement)
删掉开头和结尾的空格,返回新字符串,原字符串不变 - public String trim()
分隔字符串,返回分隔后的子字符串数组,原字符串不变 - public String[] split(String regex)

3. StringBuild/StringBuffer

StringBuilder和StringBuffer类代码实现几乎一样,只是StringBuffer是线程安全的,StringBuild不是。 对于简单的情况,可以直接使用String的+和+=,对于复杂的情况,尤其是有循环的时候,应该直接使用StringBuilder