java-String 类别

来源:互联网 发布:谷歌怎么安装js插件 编辑:程序博客网 时间:2024/05/22 10:23
由字元所組成的一串文字符號,稱之為字串,在Java中字串可以使用String類別來建構,例如您可以使用以下的方式來宣告並初始一個字串變數:
String text = "字串的使用";

注意字串的直接指定必須使用"",而字串是使用Unicode字元來建構,在建構一個字串物件變數之後,您可以直接在輸出串流中指定變數名稱來輸出字串,例如:
System.out.println(text);

字串的串接在Java中可以直接使用 + 運算子,+ 本來是加法運算子,而它被重載(Override)為可以直接用於字串的串接,例如您可以這麼使用字串:
String 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);

上面這個程式片段使用字元陣列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 的方法使用。
原创粉丝点击