java字符串知识点总结:java核心技术卷I--3.6字符串
一、字符串
java中字符串提供了一个类string,其中有许多的方法。java字符串其实是unicode字符序列。ps:关于字符集相关的知识点不太懂,需要总结。
1.1字串
string类种的substring方法可以从一个较大的字符串中提取出一个字串。
如
string greeting = "hello"; string s = greeting.substring(0,3);//注意:方法中的第二个参数是不想复制的第一个位置。可以轻松的计算子串的长度(a,b)b-a. s = "hel";
1.2拼接
+拼接两个字符串或是拼接一个字符串和一个非字符串的值。
1.3不可变字符串
因为string类中无修改字符串的方法,所以string类对象称为不可变字符串。
如需要修改则可以利用substring方法和+拼接实现。也可以修改字符串变量让它引用另外一个字符串。这就是所谓的字符串共享。可以想象将各种字符串存放在公共的存储池中。字符串变量指向存储池中相应的位置。如果复制一个字符串变量,原始字符串与复制的字符串共享相同的字符。这样往往带来高效率。
ps:字符串的值引用,地址引用的问题
1.4检测字符串是否相等
equals方法。equalsignorecase()方法。==一般不用来判断字符串的值是否相等。
1.5空串和null串
空串:java对象,串长度为0内容为空。if(str.length() == 0)或if(str.equals(""))
null串:目前没有任何对象与该变量关联if(str == null),在null值上调用方法会出现错误。
1.6代码点与代码单元
length()方法返回的是代码单元的长度,如果需要返回代码点的codepointcount().charat()方法也是针对代码单元。1.7构建字符串
stringbuilder sb = new stringbuilder();
sb.append(ch/str);
string s = sb.tostring();
注意:stringbuilder是线程不安全的,效率高。而stringbuffer是线程安全的。
1.8string类中的常用方法总结:
char charat(int index)
int codepointat(int index)返回从给定位置开始或结束的代码点
int offsetbycodepoints(int startindex,int cpcount)
返回从startindex代码点开始,位移cpcount后的代码点索引。
int compareto(string other)按照字典顺序,如果字符串位于other之前,返回一个负数,如果字符串位于other之后,返回一个正数,如果两个字符串相等,返回0.
boolean endswith(string suffix)
boolean equals(object other)
boolean equalsignorecase(string other)
int indexof(string str/int cp,///int fromindex/fromcp)返回与字符串或cp匹配的第一个字符串的开始位置。这个位置从索引0或fromindex开始计算。如我没有则返回-1
int lastindexof()
int length()
int codepointcount()
string replace(charsequence oldstring,charsequence newstring)
boolean startswith(string prefix)
string substring(int beginindex)
string substring(int beginindex,int endindex)
string tolowercase()
string touppercase()
string trim()删除原始字符串头部和尾部的空格。
1.9stringbuilder方法
int length()
stringbuilder append(string str/char c)
void setcharat(int i,char c)
stringbuilder insert(int offset,string str/char c)
string tostring()
stringbuilder delete(int startindex,int endindex) startindex ---endindex-1