Java基础篇:去探索String类

748 阅读3分钟

今天对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程序中起重要的作用。