[Java 練習題] 使用 String 中的 function 重組字串
這次要來練習如何使用 String Class 中的 function,把字串重新組合後輸出喔!
題目內容:
請寫出一個程式,包含一字串 first 設定成你的姓,和一字串 last 設定成你的名字,兩個字串必須全部都是小寫(lower-case),然後再建立一個字串儲存你的全稱,並且讓姓名的第一個字大寫。但是為了讓題目更有趣一點,我們要把它用兒童黑話(pig latin)儲存,做法是把第一個字移到最後,並且在後方加上”ay”,最後再把結果輸出到螢幕。
例如:
first = “walt”;
last = “savich”;
輸出:Altway Avichsay
首先,建立2個字串 first 與 last
String first = null; // first name String last = null; // last name
接下來,我們要使用 substring ,所以我們先介紹它一下
public String substring(int beginIndex) public String substring(int beginIndex, int endIndex)
它會從字串中取出你指定的部分,從(包含)beginIndex,到(不包含)endIndex
接下來,使用 substring(函式原型如下)來取出第一個字,並且印出來
String temp0 = first.substring(0, 1); System.out.println(temp0);
但是我們要的不只是這樣,我們還需要大寫的第一個字,這時候我們會需要 toUpperCase 函式,它會回傳一串為大寫的字串
Ps. 注意喔!String 不會編輯自己(ex. 轉為大寫),只會回傳數值而已喔!
public String toUpperCase()
於是我們可以這樣寫
String temp1 = first.substring(1, 2); String temp2 = temp1.toUpperCase(); System.out.println(temp2);
為了節省記憶體,我們可以把 first.substring(1, 2) 的回傳值(String)直接丟給 toUpperCase() 去做,最後再用變數收起來就好了
String temp1 = (first.substring(1, 2)).toUpperCase(); // 或更懶一點 String temp1 = first.substring(1, 2).toUpperCase();
沒錯,還要加上 “ay” ,不過我們在 Java 之中不用 strcat() 喔!因為 Java 中的 “+” 運算子除了可以做數學上的相加,還可以做字串的串接喔!
Ps. 這就是物件導向中 Overloading(多載)的概念
先取出 first 字串剩下的部分,然後再相加
String temp2 = first.substring(2, 4); String temp3 = temp1 + temp2 + temp0 + "ay"; System.out.println(temp3);
完整的程式碼會像這樣(僅處理 first 部分):
public class main { public static void main(String[] arg) { String first = "wait"; // first name String temp0 = first.substring(0, 1); System.out.println(temp0); String temp1 = first.substring(1, 2).toUpperCase(); System.out.println(temp1); String temp2 = first.substring(2, 4); String temp3 = temp1 + temp2 + temp0 + "ay"; System.out.println(temp3); } }
輸出:
w A Aitway
恩,好像有哪裡怪怪的,沒錯,我先指定了 first 字串的初值,這是因為 我很偷懶,subString (int beginIndex, int endIndex) 需要指定結束標記(endIndex)阿~
如果給你亂輸入的話還得了!出現正確結果的機率根本微乎其微啊!
所以,我們又要請出神奇的 Overloading(多載) 寫法來幫我們解決問題囉~!(灑花~)
public String substring(int beginIndex)
所以我們把這一行
String temp2 = first.substring(2, 4);
改成這樣
String temp2 = first.substring(2);
就不用怕不知道字串有多長了(雖然可以用 length() 來解決)
恭喜看完這次的教學,請大家記得多多練習喔!
完整程式碼在下一頁