今天对String做一个简单的探索。
String类是Java类库中最常用的类,其中最明显的原因是字符串在编程语言中是很重要的部分。
有关字符串的最重要一点是,你创建的每一个字符串实际上都是String类型的一个对象,即使是字符串常量实际上也是String对象。
System.out.println("This is a String,too");
字符串“This is a String,too”是一个字符串常数。幸好,Java处理字符串常数和其他计算机语言处理“正常”的字符串的方法一样,因此你不必担心这个。
字符串的另一个特点是,String类型的对象是不可改变的;一旦创建了一个字符串对象,它的内容是不能被改变的。这看起来是一个严格的限制,但实际上不是,因为这有两个原因:
· 如果你需要改变一个字符串,你可以创建一个新的字符串,其中包含修改后的字符串即可。
· Java定义了一个和String类同等的类叫StringBuffer,它允许字符串改变,因此所有正常的字符串操作在Java中还是可用的。
字符串可以通过多种方法构造。最容易的一种用如下的语句:
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: 12
Char at index 3 in strOb1: s
strOb1 != strOb2
strOb1 == strOb3
当然,与其他对象类型一样,strings也可以组成数组,例如:
// Demonstrate String arrays.
class StringDemo3 {
public static void main(String args[]) {
String str[] = { "one","two","three" };
for(int i=0; i<str.length; i++)
System.out.println("str[" + i + "]: " +
str[i]);
}
}
下面是该程序产生的输出:
str[0]: one
str[1]: two
str[2]: three
在下次讲解中里你将看到,字符串数组在许多Java程序中起重要的作用。