String是一种特殊的对象(不同于基本数据类型)。String类的特殊性可以它的两个其他的类不具有的特点体现出来
-
在创建一个String对象的时候,我们不仅可以通过和其他类类似的创建方式,通过
new
的方式创建,我们也可以直接通过赋值创建String newStr1 = new String("content"); // 和其他对象类似的创建方式 String newStr2 = "content"; // String 特殊的创建方式
-
String可以直接进行+运算,达到字符串连接的效果
String str3 = "One String"; String str4 = " Another String"; String str5 = str3 + str4; // str5 = "One String Another String"
另外一个需要注意的点:String可以为空,但是空字符串不代表null
。
String str6 = "";
String str7 = new String();
String str8 = null;
/* str6和str7一样,但和str8不一样 */
String作为一个对象,具有一个对象应该具有基本元素。String的field都是private的,所以我们也不需要知道他们的具体内容。String提供的method可以帮助我们实现很多对String的操作
-
char charAt(int i)
返回String在第 i i 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. 在下面这种情况中,
|
被编译器默认认为是或运算符, 所以我们需要用"\\|"
进行区分String 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的更改
StringBuilder strbui = new StringBuilder("something ");
strbui.append("another thing ");
// strbui: something another thing
相比于concat
和加法运算,使用StringBuilder的好处就是提高了效率
数字和字符串之间的转换
-
Integer与String转化
-
Integer.parseInt(str)
将str
转化为对应的Integer -
Integer转化为对应的字符串
String a = "" + 123; String a = Integer.toString(123); String a = String.valueOf(123);
-
-
Double与String转化
-
Double.parseDouble(str)
将str
转化为对应的Double -
Double转化为String使用
String.valueOf(double d)
double d = 11.01; String s = String.valueOf(d);
-