JAVA String学习笔记
String是一种特殊的对象(不同于8种基本数据类型)。String类的特殊性可以它的两个其他的类不具有的特点体现出来
在创建一个String对象的时候,我们不仅可以通过和其他类类似的创建方式,通过
new
的方式创建,我们也可以直接通过赋值创建1
2
3String newStr1 = new String("content"); // 和其他对象类似的创建方式
String newStr2 = "content";
// String 特殊的创建方式String可以直接进行+运算,达到字符串连接的效果
1
2
3
4String str3 = "One String";
String str4 = " Another String";
String str5 = str3 + str4;
// str5 = "One String Another String"
另外一个需要注意的点:String可以为空,但是空字符串不代表null
。
1 | String str6 = ""; |
String作为一个对象,具有一个对象应该具有基本元素。String的field都是private的,所以我们也不需要知道他们的具体内容。String提供的method可以帮助我们实现很多对String的操作
char charAt(int i)
返回String在第\(i\)个位置的字符int compareTo(String anotherString)
返回值是整型,它是先比较对应字符的大小(ASCII码顺序),如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值,如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方结束。(菜鸟教程)String concat(String str)
和加法运算符相同的效果int indexOf(int ch)
int indexOf(int ch, int fromIndex)
int indexOf(String str)
int indexOf(String str, int fromIndex)
返回String中出现的第一个相应的参数字符的下标,fromIndex
表示从此处开始搜索。对应的有int lastIndexOf(parameters)
表示最后一个出现的字符下标boolean isEmpty()
判断一个String是否为空,若是返回true。String replace(char oldChar, char newChar)
将原本的字符串中的所有oldchar
用newChar
代替,返回替换后的字符串String[] split(String regex, int limit)
以regex
为界限分割String得到一个数组。参数int limit
(optional)表示分割的上限次数(以前limit-1的regex
进行分割,共分成limit个String),limit<=0表示无界限。e.g. 在下面这种情况中,
|
被编译器默认认为是或运算符, 所以我们需要用"\\|"
进行区分1
2
3
4
5
6String s=“ABC|DEF|GHI”;
s.split(“|”)
/*-> [ “A”, “B”, “C”, “|”, “D”, “E”, “F”, “|”, “G”, “H”, “I”];*/
String s=“ABC|DEF|GHI”;
s.split(“\\|”);
/* -> [ “ABC”, “DEF”, “GHI”]; */String substring(int beginIndex, int endIndex)
返回从beginIndex
开始到endIndex
(不包括)的substring。String trim()
返回消除了所有空格之后的字符串- 有关String更详细的方法可以参考官方文档
String一旦被创建就不能再更改(注:String.concat()
和运算符"+"都会创建一个新的String对象而不是在原来的String基础上进行更改),所以Java提供了另一个类来实现String的更改
1 | StringBuilder strbui = new StringBuilder("something "); |
相比于concat
和加法运算,使用StringBuilder的好处就是提高了效率
数字和字符串之间的转换
Integer与String转化
Integer.parseInt(str)
将str
转化为对应的IntegerInteger转化为对应的字符串
1
2
3String a = "" + 123;
String a = Integer.toString(123);
String a = String.valueOf(123);
Double与String转化
Double.parseDouble(str)
将str
转化为对应的DoubleDouble转化为String使用
String.valueOf(double d)
1
2double d = 11.01;
String s = String.valueOf(d);