我需要编写一个以String作为输入的应用程序。在处理之后,它应该打印掉反向的字符串,并且所有字符从低位切换到大写,反之亦然。我想使用StringBuilder
实现此目的。
样品运行:
输入:Hello Hello
输出:NAMUh OLLEh
答案 0 :(得分:2)
以下是解决问题的简单直接方法:
使用例如Scanner
类读取用户输入。和nextLine()
方法。 (通过将Scanner
作为参数来构造System.in
。)
创建StringBuilder
。
使用Arrays.asList
和Collections.reverse
Collections.reverse(Arrays.asList(yourCharArray));
使用例如for-each循环遍历列表。
for (Character c : yourCharArray) {
...
}
对于每个字符,请检查c.isUpperCase
是否附加c.toLowerCase()
),否则附加c.toUpperCase()
。
(另一种方法是给StringBuilder输入字符串作为参数,并使用reverse
,charAt
和setCharAt
方法就地操作字符串。)< / p>
答案 1 :(得分:0)
要反转字符串,请使用String reverse = new StringBuffer(YourString).reverse().toString();
答案 2 :(得分:0)
答案 3 :(得分:0)
这是一个“精英”3线解决方案:
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
)的xor 0x20
切换字节的第3位,从上到下更改,反之亦然。这种切换只适用于字母。
答案 4 :(得分:0)
`function toggleCase(text){
let toggledString='';
for(let i=0;i<text.length;i++){
if(text[i]==text[i].toUpperCase())
toggledString+=text[i].toLowerCase();
else if(text[i]==text[i].toLowerCase())
toggledString+=text[i].toUpperCase();
}
return toggledString;
}`