由字元所組成的一串文字符號,稱之為字串,在Java中字串可以使用String類別來建構,例如您可以使用以下的方式來宣告並初始一個字串變數:
注意字串的直接指定必須使用"",而字串是使用Unicode字元來建構,在建構一個字串物件變數之後,您可以直接在輸出串流中指定變數名稱來輸出字串,例如:
字串的串接在Java中可以直接使用 + 運算子,+ 本來是加法運算子,而它被重載(Override)為可以直接用於字串的串接,例如您可以這麼使用字串:
這一段程式碼會在主控台上顯示 "哈囉!Java Programming!"。
用於生成字串物件的String類別擁有幾個操作字串的方法,在這邊先介紹幾個常用的:
下面這個程式介紹以上的幾個操作字串方法的使用與結果:
執行結果:
如果您要將輸入的字串轉換為整數、浮點數等等資料型態,您可以使用以下各類別所提供的各個靜態剖析方法:
注意如果指定的字串無法剖析為指定的資料型態數值,則會發生NumberFormatException例外。
之前宣告字串時,都是以這樣的樣子來宣告:
這樣的宣告方式看來像是基本資料型態宣告,但事實上String並不是Java的基本資料型態,String是java.lang套件下所提供的類別,如果以配置物件的觀念來宣告字串,應該是這樣的:
不過事實上它與下面這段是有差別的:
您可以參考 不可變的(immutable)字串 瞭解一下差別在哪邊。
一個字串其實是由字元陣列所組成,所以使用String類別宣告字串後,該字串會具有陣列索引的性質,以下介紹幾個與索引相關的方法:
下面這個程式是個簡單的示範:
執行結果:
在建構字串物件時,除了直接指定字串常數之外,您也可以使用字元陣列來建構,例如:
上面這個程式片段使用字元陣列name,建構出一個內容為"caterpillar"的字串。
除了以上所介紹的幾個方法之外,您應該查查API手冊,瞭解更多有關於String類別的方法,例如我們可以使用endsWith()方法來過濾檔案名稱,下面這個程式過濾出檔案類型為jpg的檔案:
執行結果:
Java對於字串處理的能力算是很強的,您應該多多利用線上手冊,瞭解更多有關於 java.lang.String 的方法使用。
String text = "字串的使用";
注意字串的直接指定必須使用"",而字串是使用Unicode字元來建構,在建構一個字串物件變數之後,您可以直接在輸出串流中指定變數名稱來輸出字串,例如:
System.out.println(text);
字串的串接在Java中可以直接使用 + 運算子,+ 本來是加法運算子,而它被重載(Override)為可以直接用於字串的串接,例如您可以這麼使用字串:
String msg = "哈囉!";
msg = msg + "Java Programming!";
System.out.println(msg);
msg = msg + "Java Programming!";
System.out.println(msg);
這一段程式碼會在主控台上顯示 "哈囉!Java Programming!"。
用於生成字串物件的String類別擁有幾個操作字串的方法,在這邊先介紹幾個常用的:
length() | 取得字串的字元長度 |
equals() | 判斷原字串中的字元是否相等於指定字串中的字元 |
toLowerCase() | 轉換字串中的英文字元為小寫 |
toUpperCase() | 轉換字串中的英文字元為大寫 |
下面這個程式介紹以上的幾個操作字串方法的使用與結果:
- UseString.java
public class UseString {
public static void main(String[] args) {
String text = "hello";
System.out.println("字串內容: " + text);
System.out.println("字串長度: " + text.length());
System.out.println("等於hello? " +
text.equals("hello"));
System.out.println("轉為大寫: " +
text.toUpperCase());
System.out.println("轉為小寫: " +
text.toLowerCase());
}
}
執行結果:
字串內容: hello 字串長度: 5 等於hello? true 轉為大寫: HELLO 轉為小寫: hello |
如果您要將輸入的字串轉換為整數、浮點數等等資料型態,您可以使用以下各類別所提供的各個靜態剖析方法:
Byte.parseByte(字串) | 將字串剖析為位元 |
Short.parseShort(字串) | 將字串剖析為short整數 |
Integer.parseInt(字串) | 將字串剖析為integer整數 |
Long.parseLong(字串) | 將字串剖析為long整數 |
Float.parseFloat(字串) | 將字串剖析為float浮點數 |
Double.parseDouble(字串) | 將字串剖析為double浮點數 |
注意如果指定的字串無法剖析為指定的資料型態數值,則會發生NumberFormatException例外。
之前宣告字串時,都是以這樣的樣子來宣告:
String str = "caterpillar";
這樣的宣告方式看來像是基本資料型態宣告,但事實上String並不是Java的基本資料型態,String是java.lang套件下所提供的類別,如果以配置物件的觀念來宣告字串,應該是這樣的:
String str = new String("caterpillar");
不過事實上它與下面這段是有差別的:
String str = "caterpillar";
您可以參考 不可變的(immutable)字串 瞭解一下差別在哪邊。
一個字串其實是由字元陣列所組成,所以使用String類別宣告字串後,該字串會具有陣列索引的性質,以下介紹幾個與索引相關的方法:
char charAt(int index) | 傳回指定索引處的字元 |
int indexOf(int ch) | 傳回指定字元第一個找到的索引位置 |
int indexOf(String str) | 傳回指定字串第一個找到的索引位置 |
int lastIndexOf(int ch) | 傳回指定字元最後一個找到的索引位置 |
String substring(int beginIndex) | 取出指定索引處至字串尾端的子字串 |
String substring(int beginIndex, int endIndex) | 取出指定索引範圍子字串 |
char[] toCharArray() | 將字串轉換為字元Array |
下面這個程式是個簡單的示範:
- UseString.java
public class UseString {
public static void main(String[] args) {
String text = "Your left brain has nothing right.\n"
+ "Your right brain has nothing left.\n";
System.out.println("字串內容: ");
for(int i = 0; i < text.length(); i++)
System.out.print(text.charAt(i));
System.out.println("\n第一個left: " +
text.indexOf("left"));
System.out.println("最後一個left: " +
text.lastIndexOf("left"));
char[] charArr = text.toCharArray();
System.out.println("\n字元Array內容: ");
for(int i = 0; i < charArr.length; i++)
System.out.print(charArr[i]);
}
}
執行結果:
字串內容: Your left brain has nothing right. Your right brain has nothing left. 第一個left: 5 最後一個left: 64 字元Array內容: Your left brain has nothing right. Your right brain has nothing left. |
在建構字串物件時,除了直接指定字串常數之外,您也可以使用字元陣列來建構,例如:
char[] name = {'c', 'a', 't', 'e', 'r',
'p', 'i', 'l', 'l', 'a', 'r'};
String str = new String(name);
'p', 'i', 'l', 'l', 'a', 'r'};
String str = new String(name);
上面這個程式片段使用字元陣列name,建構出一個內容為"caterpillar"的字串。
除了以上所介紹的幾個方法之外,您應該查查API手冊,瞭解更多有關於String類別的方法,例如我們可以使用endsWith()方法來過濾檔案名稱,下面這個程式過濾出檔案類型為jpg的檔案:
- UseString.java
public class UseString {
public static void main(String[] args) {
String[] filenames = {"caterpillar.jpg", "cater.gif",
"bush.jpg", "wuwu.jpg", "clockman.gif"};
System.out.print("過濾出jpg檔案: ");
for(int i = 0; i < filenames.length; i++)
if(filenames[i].endsWith("jpg"))
System.out.print(filenames[i] + " ");
System.out.println("");
}
}
執行結果:
過濾出jpg檔案: caterpillar.jpg bush.jpg wuwu.jpg |
Java對於字串處理的能力算是很強的,您應該多多利用線上手冊,瞭解更多有關於 java.lang.String 的方法使用。