字符串逆序複雜操作(stringBuilder的利用)

題目一,
字符串的完全逆轉。例如:輸入adcde,輸出edcba。

package com.stuk;

public class reverseStr {
    public static String fun2(String str){
        return  new StringBuilder(str).reverse().toString();
    }
    public static void main(String[] args){
        String str = "千轉百回,荒草叢生";
        // 句子全逆轉
        System.out.println(fun2(str));
    }
}

這裏詳細學習下StringBuilder中的方法(StringBuffer類似)。

package com.stuk;

public class reverseStr {

    public static void main(String[] args){
        // str中的方法
        StringBuilder str= new StringBuilder();
        str.append("abcde"); // append拼接方法
        System.out.println(str.toString());
        str.append("zhouyi",1,4); // 指定字串中某一範圍拼接
        System.out.println(str.toString());
        // Unicode代碼點。追加碼點codePoint 參數到此序列的字符串表示形式
        System.out.println(str.appendCodePoint(2).toString());
        str.delete(4,7); // delete 刪除下標4-7的元素
        System.out.println(str.toString());
        str.deleteCharAt(0); //  deleteCharAt 刪除下標0的元素
        System.out.println(str.toString());
        str.indexOf("bc",4); // 指定開始處  lastIndexOf()相反
        System.out.println( str.indexOf("bc"));  // 字串出現的位置
        str.insert(1,"ZZZ"); // insert 指定位置插入
        str.reverse(); // reverse 全反轉
        str.replace(0,10,"zhouyi"); // 指定範圍替換
        String string = str.substring(2).toString(); // 指定範圍截取
    }
}

題目二,
//只包含單詞和空格的字符串等,句子逆轉並每個單詞小寫轉大寫、大寫轉小寫;
例如:輸入Hello World! 輸出:wORLD! hELLO

package com.stuk;

public class reverseAndToLowUpp {
    // 只包含單詞和空格的字符串等,句子逆轉並每個單詞小寫轉大寫、大寫轉小寫
    static public void main(String[] args){
        String str = "Hello World!";
        System.out.println(fun(str));
    }

    private static String fun(String str) {
        // 逆轉
        String[] strs = str.split(" ");
        StringBuilder stringBuilder = new StringBuilder();
        for (int i = strs.length - 1; i >= 1; i--) {
            // 反轉大小寫
            stringBuilder.append(LowUppStr(strs[i]) + " ");
        }
        return stringBuilder.append(LowUppStr(strs[0])).toString();
    }

    // 單詞中大寫轉小寫,小寫轉大寫的方式
    private static String LowUppStr(String str) {
        char[] chs = str.toCharArray();
        for (int i = 0; i < chs.length; i++) {
            if (chs[i] >= 'a' && chs[i] <= 'z') {
                // 強轉很關鍵
                chs[i] = (char) (chs[i] - 'a' + 'A');
                continue;
            }
            if (chs[i] >= 'A' && chs[i] <= 'Z') {
                chs[i] = (char) (chs[i] - 'A' + 'a');
                continue;
            }
        }
        return String.valueOf(chs);
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章