1.1 定义字符串
字符串是 Java 中特殊的類,使用方法像一般的基本數(shù)據(jù)類型,被廣泛應(yīng)用在 Java 編程中。Java 沒有內(nèi)置的字符串類型,而是在標(biāo)準(zhǔn) Java 類庫中提供了一個(gè) String 類來創(chuàng)建和操作字符串。
在 Java 中定義一個(gè)字符串最簡(jiǎn)單的方法是用雙引號(hào)把它包圍起來。這種用雙引號(hào)括起來的一串字符實(shí)際上都是 String 對(duì)象,如字符串“Hello”在編譯后即成為 String 對(duì)象。因此也可以通過創(chuàng)建 String 類的實(shí)例來定義字符串。
不論使用哪種形式創(chuàng)建字符串,字符串對(duì)象一旦被創(chuàng)建,其值是不能改變的,但可以使用其他變量重新賦值的方式進(jìn)行更改。
直接定義字符串
直接定義字符串是指使用雙引號(hào)表示字符串中的內(nèi)容,例如“Hello Java”、“Java 編程”等。具體方法是用字符串常量直接初始化一個(gè) String 對(duì)象,示例如下:
String str = "Hello Java";或者
String str; str = "Hello Java";注意:字符串變量必須經(jīng)過初始化才能使用。
例 1
下面的實(shí)例演示了直接創(chuàng)建字符串的幾種用法。
使用 String 類定義
前面我們提到在 Java 中每個(gè)雙引號(hào)定義的字符串都是一個(gè) String 類的對(duì)象。因此,可以通過使用 String 類的構(gòu)造方法來創(chuàng)建字符串,該類位于 java.lang 包中(關(guān)于 Java 常用的包,教程后面會(huì)詳細(xì)講解)。
String 類的構(gòu)造方法有多種重載形式,每種形式都可以定義字符串。下面介紹最常用的幾種形式。
注意:具有和類名相同的名稱,而且沒有返回類型的方法稱為構(gòu)造方法。重載是指在一個(gè)類中定義多個(gè)同名的方法,但要求每個(gè)方法具有不同的參數(shù)的類型或參數(shù)的個(gè)數(shù)。
1. String()
初始化一個(gè)新創(chuàng)建的 String 對(duì)象,表示一個(gè)空字符序列。
`
初始化一個(gè)新創(chuàng)建的 String 對(duì)象,使其表示一個(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ù)對(duì)字符數(shù)組的修改不會(huì)影響新創(chuàng)建的字符串。例如:
char a[] = {'H','e','l','l','0'}; String sChar = new String(a); a[1] = 's';上述 sChar 變量的值是字符串“Hello”。 即使在創(chuàng)建字符串之后,對(duì) 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ù)組的長(zhǎng)度。該子數(shù)組的內(nèi)容已被賦值,后續(xù)對(duì)字符數(shù)組的修改不會(huì)影響新創(chuàng)建的字符串。例如:
char a[]={'H','e','l','l','o'}; String sChar=new String(a,1,4); a[1]='s';上述 sChar 變量的值是字符串“ello”。該構(gòu)造方法使用字符數(shù)組中的部分連續(xù)元素來創(chuàng)建字符串對(duì)象。offset 參數(shù)指定起始索引值,count 指定截取元素的個(gè)數(shù)。創(chuàng)建字符串對(duì)象后,即使在后面修改了 a 數(shù)組中第 2 個(gè)元素的值,對(duì) sChar 的值也沒有任何影響。
總結(jié)
- 上一篇: 1.24 Lambda表达式与匿名内部类
- 下一篇: 1.2 String字符串和整型int的