在?Java?中定義一個(gè)字符串最簡單的方法是用雙引號把它包圍起來班眯。這種用雙引號括起來的一串字符實(shí)際上都是 String 對象阴幌,如字符串"Hello"在編譯后即成為 String 對象坯认。因此也可以通過創(chuàng)建 String 類的實(shí)例來定義字符串。
不論使用哪種形式創(chuàng)建字符串政恍,字符串對象一旦被創(chuàng)建,其值是不能改變的达传,但可以使用其他變量重新賦值的方式進(jìn)行更改篙耗。
直接定義字符串
直接定義字符串是指使用雙引號表示字符串中的內(nèi)容,例如"Hello Java"宪赶、"Java 編程"等宗弯。具體方法是用字符串常量直接初始化一個(gè) String 對象,示例如下:
String str="Hello Java";
或者
String str;
str="Heilo Java";
注意:字符串變量必須經(jīng)過初始化才能使用搂妻。
例 1
下面的實(shí)例演示了直接創(chuàng)建字符串的幾種用法蒙保。
String str="我是一只小小鳥"; //結(jié)果:我是一只小小鳥
String word;
word="I am a bird"; //結(jié)果:I am a bird
word="<h1>to fly</h1>"; //結(jié)果:<h1>to fly</h1>
word="Let\'s say that it\'s true"; // 結(jié)果:Let's say that it's true
System.out.println(word);
word="北京\\上海\\廣州"; //結(jié)果:北京\上海\廣州
在 Java 中每個(gè)雙引號定義的字符串都是一個(gè) String 類的對象。因此欲主,可以通過使用 String 類的構(gòu)造方法來創(chuàng)建字符串邓厕,該類位于 java.lang 包中,作用域是 final扁瓢。
String 類的構(gòu)造方法有多種重載形式详恼,每種形式都可以定義字符串。下面介紹最常用的幾種形式引几。
1. String()
初始化一個(gè)新創(chuàng)建的 String 對象昧互,表示一個(gè)空字符序列。
2. String(String original)
初始化一個(gè)新創(chuàng)建的 String 對象伟桅,使其表示一個(gè)與參數(shù)相同的字符序列敞掘。換句話說,新創(chuàng)建的字符串是該參數(shù)字符串的副本楣铁。例如:
String str1=new String("Hello Java");
String str2=new String(str1);
這里 str1 和 str2 的值是相等的玖雁。
3. String(char[ ]value)
分配一個(gè)新的字符串,將參數(shù)中的字符數(shù)組元素全部變?yōu)樽址窆印T撟址麛?shù)組的內(nèi)容已被復(fù)制茄菊,后續(xù)對字符數(shù)組的修改不會影響新創(chuàng)建的字符串。例如:
char a[]={'H','e','l','l','0'};
String sChar=new String(a);
a[1]='s';
上述 sChar 變量的值是字符串"Hello"赊堪。 即使在創(chuàng)建字符串之后面殖,對 a 數(shù)組中的第 2 個(gè)元素進(jìn)行了修改,但未影響 sChar 的值哭廉。
4. String(char[] value,int offset,int count)
分配一個(gè)新的 String脊僚,它包含來自該字符數(shù)組參數(shù)一個(gè)子數(shù)組的字符。offset 參數(shù)是子數(shù)組第一個(gè)字符的索引,count 參數(shù)指定子數(shù)組的長度辽幌。該子數(shù)組的內(nèi)容已被賦值增淹,后續(xù)對字符數(shù)組的修改不會影響新創(chuàng)建的字符串。例如:
char a[]={'H','e','l','l','o'};
String sChar=new String(a,1,4);
a[1]='s';
上述 sChar 變量的值是字符串"Hello"乌企。該構(gòu)造方法使用字符數(shù)組中的部分連續(xù)元素來創(chuàng)建字符串對象虑润。offset 參數(shù)指定起始索引值,count 指定截取元素的個(gè)數(shù)加酵。創(chuàng)建字符串對象后拳喻,即使在后面修改了 a 數(shù)組中第 2 個(gè)元素的值,對 sChar 的值也沒有任何影響猪腕。