String类简介
String类的定义
在Java语言中,String类是一个代表字符串的数据类型,它是一个对象,同时也是一个常量。在Java中,变量名可以指向一个String对象,而String对象可以包含一个或多个字符序列。
String类属于Java的核心类库,它提供了大量的方法,用于字符串的操作。在Java中,字符串的常用操作有比较、查找、替换、分割、格式化等,String类提供了这些操作所需的方法。
String类的特性
1. 不可变性:String类是不可变的,意思是一旦创建了一个String对象,它就不能再被修改。例如:
String str = \"hello\"; str += \" world\"; System.out.println(str);
上面的代码中,使用了加号运算符对字符串进行拼接,但实际上是创建了一个新的String对象,并将其赋值给str变量,因此原来的String对象\"hello\"并没有被改变。
2. 可以进行字符串常量池优化:Java中有一个字符串常量池,如果两个字符串的值相等,它们会在常量池中共享同一个对象,这样可以节省内存空间。例如:
String str1 = \"hello\"; String str2 = \"hello\"; System.out.println(str1 == str2);
上面的代码中,str1和str2指向了同一个String对象,因此输出为true。
String类的常用方法
1. length()方法
返回字符串的长度,即包含的字符个数。例如:
String str = \"hello world\"; System.out.println(str.length());
上面的代码输出为11,因为字符串\"hello world\"包含11个字符。
2. charAt(int index)方法
返回指定索引处的字符。索引从0开始。例如:
String str = \"hello world\"; System.out.println(str.charAt(1));
上面的代码输出为'e',因为字符串\"hello world\"的第二个字符是'e'。
3. subString(int beginIndex, int endIndex)方法
返回从beginIndex(包含)到endIndex(不包含)之间的子字符串。例如:
String str = \"hello world\"; System.out.println(str.substring(6, 11));
上面的代码输出为\"world\",因为字符串\"hello world\"的从第7个字符(包括)到第12个字符(不包括)之间的子字符串是\"world\"。
4. indexOf(String str)方法
返回字符串中第一次出现指定字符串的索引位置,如果没有找到则返回-1。例如:
String str = \"hello world\"; System.out.println(str.indexOf(\"world\"));
上面的代码输出为6,因为字符串\"world\"首次出现在字符串\"hello world\"的第7个字符处。
5. replace(char oldChar, char newChar)方法
将字符串中的指定字符替换为新的字符。例如:
String str = \"hello\"; System.out.println(str.replace('l', 'w'));
上面的代码输出为\"hewwo\",因为字符'l'被替换成了字符'w'。
6. split(String regex)方法
使用指定的正则表达式分隔符分割字符串,返回一个字符串数组。例如:
String str = \"hello-world\"; String[] arr = str.split(\"-\"); for (String s : arr) { System.out.println(s); }
上面的代码输出为:
hello world
因为使用\"-\"字符对字符串\"hello-world\"进行了分割,得到了两个子字符串\"hello\"和\"world\"。
总结
String类是Java语言中操作字符串最常用的类之一,它提供了丰富的方法用于字符串的处理。在使用时需要注意String的不可变性,同时可以利用字符串常量池优化程序。