我需要編寫一個將字符串作爲輸入的應用程序。處理完畢後,應打印出反轉的字符串,並將所有字符從低位切換爲大寫,反之亦然。我想用StringBuilder
來達到這個目的。反轉字符串並切換小寫大寫
採樣運行:
輸入:你好人
輸出:NAMUh 2009東海生日賀
我需要編寫一個將字符串作爲輸入的應用程序。處理完畢後,應打印出反轉的字符串,並將所有字符從低位切換爲大寫,反之亦然。我想用StringBuilder
來達到這個目的。反轉字符串並切換小寫大寫
採樣運行:
輸入:你好人
輸出:NAMUh 2009東海生日賀
下面是一個簡單的,簡單的解決問題的方式:利用比如
讀取用戶輸入Scanner
類。和nextLine()
方法。 (通過以System.in
作爲參數來構造Scanner
)。
創建StringBuilder
。
使用例如換每次提取從輸入字符串中的字符陣列,使用例如input.toCharArray()
反轉陣列Arrays.asList
和Collections.reverse
Collections.reverse(Arrays.asList(yourCharArray));
遍歷該列表循環。
for (Character c : yourCharArray) {
...
}
對於每一個字符,檢查是否c.isUpperCase
(如果有的話追加c.toLowerCase()
)其他附加c.toUpperCase()
。
(一種替代方法將是給StringBuilder的輸入字符串作爲參數,並使用所述reverse
,charAt
和setCharAt
方法操縱就地的字符串。)
要反轉字符串使用String reverse = new StringBuffer(YourString).reverse().toString();
下面是一個 「精英」 三線解決方案:
StringBuffer buffy = new StringBuffer("!GNIzA Ma").reverse();
for (int i = 0; i < buffy.length(); i++)
buffy.setCharAt(i, Character.isLetter(buffy.charAt(i)) ? (char) (buffy.charAt(i)^32) : buffy.charAt(i));
System.out.println(buffy); // "Am aZing!"
此工作,因爲該異或^
與32
(或0x20
)切換而改變上降低,反之亦然字節的第三位。這種切換隻適用於字母當然。
如果是家庭作業,請用家庭作業標籤標記。 – aioobe
我每分鐘都會收到做作業的報酬,請告知我是否可以負擔得起我的服務。 :) –
?raf os deirt ev'uoy tahw tsoP – Raoul