String 的特性
public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[]; /** Cache the hash code for the string */ private int hash; // Default to 0
String 对象的创建
String str = "hello"; // 本质上this.value = new char[0]; String s1 = new String(); //this.value = original.value; String s2 = new String(String original); //this.value = Arrays.copyOf(value, value.length); String s3 = new String(char[] a); String s4 = new String(char[] a,int startIndex,int count);
字符串对象是如何存储的
String使用陷阱
String 常用方法
int length() :返回字符串的长度: return value.length char charAt(int index): : 返回某索引处的字符return value[index] boolean isEmpty() :判断是否是空字符串:return value.length == 0 String toLowerCase() :使用默认语言环境,将 String 中的所有字符转换为小写 String toUpperCase() :使用默认语言环境,将 String 中的所有字符转换为大写 String trim(): :返回字符串的副本,忽略前导空白和尾部空白 boolean equals(Object obj): :比较字符串的内容是否相同 boolean equalsIgnoreCase(String anotherString) :与equals方法类似,忽略大小写 String concat(String str) :将指定字符串连接到此字符串的结尾。 等价于用“+” int compareTo(String anotherString): :比较两个字符串的大小 String substring(int beginIndex): :返回一个新的字符串,它是此字符串的从beginIndex开始截取到最后的一个子字符串。 String substring(int beginIndex, int endIndex) : :返回一个新字符串,它是此字符串从beginIndex开始截取到endIndex(不包含)的一个子字符串。 boolean endsWith(String suffix): :测试此字符串是否以指定的后缀结束 boolean startsWith(String prefix): :测试此字符串是否以指定的前缀开始 boolean startsWith(String prefix, int toffset): :测试此字符串从指定索引开始的子字符串是否以指定前缀开始 boolean contains(CharSequence s) :当且仅当此字符串包含指定的 char 值序列时,返回 true int indexOf(String str): :返回指定子字符串在此字符串中第一次出现处的索引 int indexOf(String str, int fromIndex): :返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始 int lastIndexOf(String str): :返回指定子字符串在此字符串中最右边出现处的索引 int lastIndexOf(String str, int fromIndex): :返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索----注:indexOf和lastIndexOf方法如果未找到都是返回-1 String replace(char oldChar, char newChar): :返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。 String replace(CharSequence target, CharSequence replacement): :使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。 String replaceAll(String regex, String replacement) : : 使 用 给 定 的replacement 替换此字符串所有匹配给定的正则表达式的子字符串。 String replaceFirst(String regex, String replacement) : : 使 用 给 定 的replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。 boolean matches(String regex): :告知此字符串是否匹配给定的正则表达式。 String[] split(String regex): :根据给定正则表达式的匹配拆分此字符串。 String[] split(String regex, int limit): :根据匹配给定的正则表达式来拆分此字符串,最多不超过limit个,如果超过了,剩下的全部都放到最后一个元素中。
字符串相关的类:StringBuffer
StringBuffer代表 可变的字符 序列,JDK1.0中声明,可以对字符串内容进行增删,此时不会产生新的对象。
StringBuffer类的常用方法
StringBuffer append(xxx):提供了很多的append()方法,用于进行字符串拼接 StringBuffer delete(int start,int end):删除指定位置的内容 StringBuffer replace(int start, int end, String str):把[start,end)位置替换为str StringBuffer insert(int offset, xxx):在指定位置插入xxx StringBuffer reverse() :把当前字符序列逆转 public int indexOf(String str) public String substring(int start,int end) public int length() public char charAt(int n ) public void setCharAt(int n ,char ch)