天天看點

IO實戰篇:字元串逆序顯示 | 帶你學《Java語言進階特性》之七十四

上一篇:IO實戰篇:檔案儲存 | 帶你學《Java語言進階特性》之七十三

本節将帶着讀者開發實際案例,結合Arrays類和StringBuffer類,實作對字元串的逆序輸出操作。

【本節目标】

通過閱讀本節内容,你将複習Arrays類和StringBuffer類的相關知識,與之前的案例設計模式一樣,通過簡單的控制台菜單設計和工廠模式完成對輸入字元串的追加輸入和逆序顯示功能。

字元串逆序顯示

從鍵盤傳入多個字元串到程式中,并将它們按逆序輸出在螢幕上。

本程式中應該考慮到如下的集中設計:

1.既然字元串的内容可以随時修改,那麼最好建立一個StringBuffer做儲存;
2.在進行資料處理的時候應該由使用者自己來決定是否繼續輸入;
           

1、定義字元串的操作标準:

public interface IStringService {
    public void append(String str);//追加資料
    public String[] reverse();//反轉處理
}           

2、實作子類裡使用StringBuffer來操作:

public class StringServiceImpl implements IStringService {
    private StringBuffer data = new StringBuffer();
    @Override
    public void append(String s) {
        this.data.append(s).append("|");
    }
    @Override
    public String[] reverse() {
        String result [] = data.toString().split("\\|");
        int center = result.length / 2;
        int head = 0;
        int tail = result.length - 1;
        for (int x = 0; x < center; x++) {
            String tmp = result[head];
            result[head] = result[tail];
            result[tail] = tmp;
        }
        return result;
    }
}           

3、定義工廠類:

public class Factory {
    private Factory() {}
    public static IStringService getInstance() {
        return new StringServiceImpl();
    }
}           

4、定義一個Menu處理類,采用互動式的界面形式完成處理:

public class Menu {
    private IStringService stringService;
    public Menu() {
        this.stringService = Factory.getInstance();
        this.choose();
    }
    public void choose() {
        this.show();
        String choose = InputUtil.getStr("請進行選擇");
        switch (choose) {
            case "1":{  //接收輸入資料
                String str = InputUtil.getStr("請輸入字元串資料:");
                this.stringService.append(str);//進行資料的儲存
                choose();//重複出現
            }
            case "2":{  //逆序顯示資料
                String[] res = stringService.reverse();
                System.out.println(Arrays.toString(res));//輸出
                choose();//重複出現
            }
            case "0":{
                System.out.println("下次再見,拜拜!");
                System.exit(1);
            }
            default:{
                System.out.println("您輸入了非法的選項,無法進行處理,歉意确認後再次執行程式!");
                choose();
            }
        }
    }
    public void show() {
        System.out.println("【1】追加字元串資料\n");
        System.out.println("【2】逆序顯示所有的字元串資料\n");
        System.out.println("【0】結束程式執行。");
        System.out.println("\n\n\n");
    }
}           

5、編寫測試類:

public class IOCaseDemo {
    public static void main(String[] args) {
        new Menu();//啟動程式界面
    }
}           

運作結果:

【1】追加字元串資料

【2】逆序顯示所有的字元串資料

【0】結束程式執行。

請進行選擇1

請輸入字元串資料:hello

請輸入字元串資料:world

請輸入字元串資料:mldn

請輸入字元串資料:nihao

請進行選擇2

[hello, world, mldn, nihao]

請進行選擇0

下次再見,拜拜!

想學習更多的Java的課程嗎?從小白到大神,從入門到精通,更多精彩不容錯過!免費為您提供更多的學習資源。

本内容視訊來源于

阿裡雲大學 下一篇:IO實戰篇:資料排序處理 | 帶你學《Java語言進階特性》之七十五 更多Java面向對象程式設計文章檢視此處