我编写了以下代码来反转输入字符串:
Scanner s = new Scanner(System.in);
System.out.println("Please enter a sentence:");
String sentence = s.nextLine();
String[] words = sentence.split(" ");
String reversedSentence = "";
for(int i = words.length - 1; i >= 0 ; i--)
{
reversedSentence += words[i] + " ";
}
System.out.println(reversedSentence);
然而它没有给我我想要的结果。我需要标点符号成为它所附加的单词的一部分,但仍然切换到单词的右侧。例如,如果您输入
“敏捷的棕色狐狸跳过了懒狗”
我想要的输出是
“狗懒了,跳过狐狸棕色快了”
我实际得到的是:
狗“懒惰的跳过狐狸棕色快速”
如果您只想处理输入开头和结尾的双引号,只需反转子字符串并稍后添加它们即可。例如。
if (sentence.startsWith("\"") && sentence.endsWith("\"")) {
sentence = sentence.substring(1, sentence.length()-1);
}
最后在分割、反转和连接打印之后:
System.out.println('"' + reversedSentence + '"');
还有2个建议:
1)你的for循环留下了一个尾随空格。不要为最后一个单词添加空格
2)你应该使用StringBuilder
连接字符串。例如。
StringBuilder reversedSentence = new StringBuilder();
for (int i = words.length - 1; i > 0; i--) {
reversedSentence.append(words[i]).append(' ');
}
reversedSentence.append(words[0]);
System.out.println('"' + reversedSentence.toString() + '"');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)