由字元組成的文字符號稱為字串,例如"Hello"
字串是由'H'、'e'、'l'、'l'、'o'
五個字元組成,在某些程式語言中,字串是以字元陣列的方式存在,然而在Java中,字串是java.lang.Strin
g實例,用來包裹字元陣列,你可以用""
包括一串字元來建立字串:
String name = "justin"; // 建立String實例
System.out.println(name); // 顯示justin
System.out.println(name.length()); // 顯示長度為6
System.out.println(name.charAt(0)); // 顯示第一個字元j
System.out.println(name.toUpperCase()); // 顯示JUSTIN
由於字串在Java中是物件,所以自然也就擁有一些可操作的方法,像是這個程式片段中所示範的,可以使用length()
取得字串長度,使用charAt()
指定取得字串中某個字元,索引從0開始,使用toUpperCase()
將原本小寫的字串內容轉為大寫的字串內容。
如果你已經有一個char[]
陣列,也可以使用new
來建構String
實例。例如:
char[] cs = {'j', 'u', 's', 't', 'i', 'n'};
String name = new String(cs);
如果必要,也可以使用String
的toCharArray()
方法,以將字串以char[]
陣列傳回:
char[] cs2 = name.toCharArray();
在Java中可以使用+
運算來串接字串。例如在JDK5之前並沒有System.out.printf()
方法,所以常常看到文字示範簡單的輸出時會這麼撰寫:
String name = "Justin";
System.out.println("你的名字是:" + name);
如果要將輸字串轉換為整數、浮點數等基本型態,可以使用下表各類別提供的剖析方法:
方法 |
說明 |
Byte.parseByte(number) |
將number剖析為byte整數 |
Short.parseShort(number) |
將number為short整數 |
Integer.parseInt(number) |
將number為int整數 |
Long.parseLong(number) |
將number為long整數 |
Float.parseFloat(number) |
將number為float浮點數 |
Double.parseDouble(number) |
將number剖析為double浮點數 |
在上表中,假設
number
參考至String
實例,而該字串實際上是代表數字,例如"123"
、"3.14"
這樣的數字。如果無法剖析傳入的String
實例,則會拋出NumberFormatException
的錯誤。來個綜合練習,下面這個範例可以讓使用者輸入整數,輸入0後會計算所有整數總合並顯示:
package cc.openhome;
import java.util.Scanner;
public class Sum {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
long sum = 0;
long number = 0;
do {
System.out.print("輸入數字:");
number = Long.parseLong(scanner.nextLine());
sum += number;
} while(number != 0);
System.out.println("總合:" + sum);
}
}
一個執行結果如下:
輸入數字:20
輸入數字:30
輸入數字:0
總合:60
在認識陣列與字串,可以來看看程式進入點
main()
中的String[] args
了,在啟動JVM並指定執行類別時,可以一併指定命令列引數(Command line arguments)。例如:上面這個指令代表啟動JVM並執行
cc.openhome.Average
類別,而Average
類別會接受1、2、3、4這四個引數,這四個引數會收集 為String
陣列,由main()
中的args
參考。實際來看個應用,底下這個範例可讓使用者命令列引數提供整數,計算出所有整數平均:package cc.openhome;
public class Average {
public static void main(String[] args) {
long sum = 0;
for(String arg : args) {
sum += Long.parseLong(arg);
}
System.out.println("平均:" + (float) sum / args.length);
}
}