題目一,
字符串的完全逆轉。例如:輸入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);
}
}