我需要编写一个将字符串作为输入的应用程序。处理完毕后,应打印出反转的字符串,并将所有字符从低位切换为大写,反之亦然。我想用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