有关字符串的最重要一点是,你创建的每一个字符串实际上都是String 类型的一个对象,即使是字符串常量实际上也是String 对象。System.out.println("This is a String,too");
字符串“This is a String,too ”是一个字符串常数。幸好,Java 处理字符串常数和其他计算机语言处理“正常”的字符串的方法一样,因此你不必担心这个。
字符串的另一个特点是,String 类型的对象是不可改变的;一旦创建了一个字符串对象,它的内容是不能被改变的。这看起来是一个严格的限制,但实际上不是,因为这有两个原因:
?
如果你需要改变一个字符串,你可以创建一个新的字符串,其中包含修改后的字符串即可。
?
Java 定义了一个和String 类同等的类叫StringBuffer ,它允许字符串改变,因此所有正常的字符串操作在Java 中还是可用的(StringBuffer 在本书的第2部分描述)。
字符串可以通过多种方法构造。最容易的一种用如下的语句:
String myString = "this is a test";
一旦你创建了一个字符串对象,你可以在任何允许字符串的地方使用它,例如下面这条语句显示myString :
System.out.println(myString);
Java 定义了一个String 对象的运算符:“+”。它用来连接两个字符串。例如,下面这条语句:
String myString = "I" + " like " + "Java.";
的结果是myString 包含“I like Java.”下面的程序表明了前面的概念:
// Demonstrating Strings.
class StringDemo {
public static void main(String args[]) {
String strOb1 = "First String";
String strOb2 = "Second String";
String strOb3 = strOb1 + " and " + strOb2;
System.out.println(strOb1);
System.out.println(strOb2);
System.out.println(strOb3);
}
}
该程序产生的输出如下所示:
First String
Second String
First String and Second String
String 类包含许多操作字符串的方法。例如下面就是其中一些。你可以用equals() 来检验两个字符串是否相等。你可以调用方法length() 来获得一个字符串的长度。你可以调用charAt() 来获得一个字符串指定索引的字符。这三个方法的通用格式如下所示:
boolean equals(String object)
int length( )
char charAt(int index)
下面的程序示例了这些方法:
// Demonstrating some String methods.
class StringDemo2 {
public static void main(String args[]) {
String strOb1 = "First String";
String strOb2 = "Second String";
String strOb3 = strOb1;
System.out.println("Length of strOb1: " +
strOb1.length());
System.out.println("Char at index 3 in strOb1: " +
strOb1.charAt(3));
if(strOb1.equals(strOb2)) System.out.println("strOb1 == strOb2"); else System.out.println("strOb1 != strOb2");
if(strOb1.equals(strOb3)) System.out.println("strOb1 == strOb3"); else System.out.println("strOb1 != strOb3"); }}
该程序产生如下的输出:
Length of strOb1: 12Char at index 3 in strOb1: s strOb1 != strOb2strOb1 == strOb3
当然,与其他对象类型一样,strings 也可以组成数组,例如:
// Demonstrate String arrays.class StringDemo3 {public static void main(String args[]) { String str[] = { "one","two","three" };
for(int i=0; i
str[i]);
}
}
下面是该程序产生的输出:
str[0]: one
str[1]: two
str[2]: three
在下节里你将看到,字符串数组在许多Java 程序中起重要的作用。