两个问题:
在用户输入的短语(表示两个或多个单词之间有空格的短语)中,仅最后两个单词被反转,短语中的其他单词不会被反转甚至打印。
我的用于反转单词中字母顺序的代码(单词表示单个单词)似乎没有打印任何内容,但它无休止地接受输入而没有结果。
重要提示:我被禁止使用 StringBuilder、数组或任何其他“高级”工具。事实上,我最好只使用 AP 计算机科学指南中引用的方法(尽管不是必需的)。我尝试了很多事情,包括调整参数、不同的串联等。
我希望“这是一个字符串”的输出是“字符串 a 是这个”。相反,它打印“字符串 a”。我希望“heck”的输出是“kceh”。相反,我什么也没得到。
注意:代码中的注释是我的额外关注点和问题,也旨在帮助更好地理解我的代码。抱歉,如果有点混乱,这是我第一次真正评论自己的代码。
Scanner userInput = new Scanner(System.in);
System.out.print("Enter a word or phrase: ");
String str = userInput.nextLine(); //user-input string
String reversePhrase = ""; //placeholder for reversed phrase
String reverseWord = ""; //placeholder for reversed word
char reverseLetter = ' '; //placeholder for letters in reversed word
for(int position = 0; position < str.length(); position++)
{
if(str.indexOf(" ") > -1) //checks for space in the user-input string
{
while(str.indexOf(" ") > -1)
{
reversePhrase = str.substring(0, str.indexOf(" ")); //this might be the problem, but i'm stuck on any solutions
str = str.substring(1 + str.indexOf(" "));
reversePhrase = str + " "+ reversePhrase;
}
System.out.println(reversePhrase); //only reverses and prints last two words in phrase
}
else if(!(str.indexOf(" ") > -1)) //if there's no space in the user-input string
{
for(position = str.length() - 1; position >= 0; position --) //does this conflict with the "for" parameter above?
{
while(position >= 0) //wasn't sure what to put for this parameter
{
reverseLetter = str.charAt(position);
reverseWord = reverseLetter + reverseWord;
}
}
System.out.println(reverseWord);
}
}
米脂
慕尼黑的夜晚无繁华
人到中年有点甜
相关分类