Java連線字串

2020-07-16 10:04:35
對於已經定義的字串,可以對其進行各種操作。連線多個字串是字串操作中最簡單的一種。通過字串連線,可以將兩個或多個字串、字元、整數和浮點數等型別的資料連成一個更大的字串。

使用連線運算子

“+”運算子是最簡單、最快捷,也是使用最多的字串連線方式。在使用“+”運算子連線字串和 int 型(或 double 型)資料時,“+”將 int(或 double)型資料自動轉換成 String 型別。

例 1

下面的範例使用“+”運算子連線了 3 個陣列和 1 個字串。
public static void main(String[] args)
{
    int[] no=new int[]{501,101,204,102,334};    //定義學號陣列
    String[] names=new String[]{"張城","劉麗麗","李國旺","孟紅霞","賀寧"};    //定義姓名陣列
    String[] classes=newString[]{"數學","語文","數學","英語","英語"};    //定義課程陣列
    System.out.println("本次考試學生資訊如下:");
    //迴圈遍歷陣列,連線字串
    for(int i=0;i<no.length;i++)
    {
        System.out.println("學號:"+no[i]+"|姓名:"+names[i]+"|課程:"+dasses[i]+"|班級:"+"初二(三)班");
    }
}

上述程式碼首先建立了 3 個包含有 5 個元素的陣列,然後迴圈遍歷陣列,遍歷的次數為 5。在迴圈體內輸出學號、姓名和課程,並使用“+”運算子連線班級最終形成一個字串。程式執行後輸出結果如下:
本次考試學生資訊如下:
學號:501|姓名:張城|課程:數學|班級:初二(三)班
學號:101|姓名:劉麗麗|課程:語文丨班級:初二(三)班
學號:204|姓名:李國旺|課程:數學|班級:初二(三)班
學號:102|姓名:孟紅霞|課程:英語|班級:初二(三)班
學號:334|姓名:賀寧|課程:英語|班級;初二(三)班

當定義的字串值的長度過長時,可以分作多行來寫,這樣比較容易閱讀。例如:
String str="Welcome to"+"Beijing"+"歡迎來到"+"北京。"+"北京我的故鄉。";

使用 concat() 方法

在 Java 中,String 類的 concat() 方法實現了將一個字串連線到另一個字串的後面。concat() 方法語法格式如下:
字串 1.concat(字串 2);

執行結果是字串 2 被連線到字串 1 後面,形成新的字串。

例 2

如 concat() 方法的語法所示,concat() 方法一次只能連線兩個字串,如果需要連線多個字串,需要呼叫多次 concat() 方法。

下面建立一個範例程式碼來演示如何使用 concat() 方法連線多個字串。
public static void main(String[] args)
{
    String info="三國演義、";
    info=info.concat("西遊記、");
    info=info.concat("水漭傳、");
    info=info.concat("紅樓夢");
    System.out.println(info);
    String cn="中國";
    System.out.println(cn.concat("北京").concat("海淀區").concat("人民公園"));
}

執行該段程式碼,輸出的結果如下所示。
三國演義、西遊記、水滸傳、紅樓夢
中國北京海澱區人民公園

連線其他型別資料

前面介紹的例子都是字串與字串進行連線,其實字串也可同其他基本資料型別進行連線。如果將字串同這些資料型別資料進行連線,此時會將這些資料直接轉換成字串。

例 3

編寫一個 Java 程式,實現將字串與整型、浮點型變數相連並輸出結果。實現程式碼如下:
public static void main(String[] args)
{
    String book="三國演義";    //字串
    int price=59;    //整型變數
    float readtime=2.5f;    //浮點型變數
    System.out.println("我買了一本圖書,名字是:"+book+"n價格是:"+price+"n我每天閱讀"+readtime+"小時");
}

上述程式碼實現的是將字串變數 book 與整型變數 price 和浮點型變數 readtime 相連後將結果輸出。在這裡定義的 price 和 readtime 都不是字串,當它們與字串相連時會自動呼叫自身的 toString() 方法將其轉換成字串形式,然後再參與連線運算。因此,程式執行後的結果如下所示:
我買了一本圖書,名字是:三國演義
價格是:59
我每天閱讀2.5小時

假設將本例中的輸出語句修改為如下形式:
System.out.println("我買了一本圖書,名字是:"+book+"n 價格是:"+price+"n我每天閱讀"+(price+readtime)+"小時");

因為運算子具有優先順序,而圓括號的優先順序最高,所以先計算 price 與 readtime 的和,再將結果轉換成字串進行連線。此時的執行結果如下所示:
我買了一本圖書,名字是:三國演義
價格是:59
我每天閱讀61.5小時

注意:只要“+”運算子的一個運算元是字串,編譯器就會將另一個運算元轉換成字串形式,所以應該謹慎地將其他資料型別與字串相連,以免出現意想不到的結果。