关于Java中String类的用法总结
1、String 类代表字符串。使用一对""引起来表示。
2、String类由final修饰,所以是不可继承的;
3、已实现的接口: Serializable接口:表示字符串是支持序列化的
CharSequence接口:表示字符串本质是通过字符数组实现的。
Comparable<**String>**接口:表示字符串可以比较大小。
4、String内部定义了final char[] value;用于储存字符串数据。
5、Java运行时会维护一个String Pool(字符串常量池)。常量池用来存放运行时中产生的各种字符串,并且池中的字符串的内容不重复。
6、String代表不可变字符序列。简称不可变性
●1、对当前字符串重新进行赋值时,需要重新指定内存区域赋值,不能使用原有的value进行赋值。
●2、当对现有的字符串进行拼接操作时,也需要重新指定内存区域进行赋值,不能对原有的value上进行操作。
●3、当调用String的replace()方法修改指定字符或字符串时,也需要重新指定内存区域进行赋值,不能对原有的value上进行操作。
1、String对象的创建
String str = "hello";//以自变量的方式赋值
//下面都是以对象的方式
String s1 = new String();
//本质上是:this.value = new Char[0];
String s2 = new String(String original);
//本质上是:this value = original.value;
String s3 = new String(char[] array);
//本质上:this.value = Arrays.copyOf(value ,value.length)
String s1 = new String(char[] , int startIndex , int count);
String类中常用的方法
●public int compareTo(String anotherString)
按字典顺序比较两个字符串。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数,反之为负数。如果这两个字符串相等,则结果为 0。
●public char charAt(int index)
返回指定索引处的 char 值。
●public int length()
返回字符串的长度;
●public int indexOf(String str)
返回字符串中第一次出现str的位置;
●public boolean isEmpty();
当且仅当 length() 为 0 时返回 true。
●public String toLowerCase()
返回一个字符串为该字符串的小写形式
●public String toUpperCase()
返回一个字符串为该字符串的大写形式;
●public String trim()
返回字符串的副本,忽略前导空白和尾部空白。
用处:用户填写用户名时,避免因为空格问题导致用户不存在。
●public boolean equals(Object anObject);
将此字符串与指定的对象比较。与此对象表示相同字符序列的 String 对象,结果为 true。与==比较的不同:=比较是的地址,而equal比较的是值。
●public boolean equalsIgnoreCase(String another);
比较字符串与another是否一样(忽略大小写)
●public String concat(String str);
将指定字符串连接到此字符串的结尾。等价于“+”拼接。
●public String substring(int beginIndex);
返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从beingindex索引处的字符开始,直到此字符串末尾。
●public String substring(int beginIndex,int endIndex);
返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。可以理解为集合的左闭右开。
●public boolean startsWith(String prefix)
判断字符串是否以prefix字符串开头;
●public boolean endsWith(String suffix)
判断一个字符串是否以suffix字符串结尾;
●public String replace(char oldchar,char newChar)
在字符串中用newChar字符替换oldChar字符。所有的都替换。
●public String replace(CharSequence target,CharSequence replacement);
使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。该替换从字符串的开头朝末尾执行,例如,用 “b” 替换字符串 “aaa” 中的 “aa” 将生成 “ba” 而不是 “ab”。
●public String[] split(String regex)
将一个字符串按照指定的分隔符分隔,返回分隔后的字符串数组