所以我的计算机科学课遇到了一些麻烦。我需要编写一些代码,该代码将获取一个字符串并以相反的字序向后打印它。他告诉我找到一个空白区域,然后从那里打印,然后继续搜索......并重复此操作直到字符串末尾。我输入了代码,它只打印了第一个单词 3 次。我知道这对你们来说可能是显而易见的。
public class Backwords
/*
* Gets words from main and prints in reverse order
*/
public static String BackwardsString(String str)
{
String str1 = (" " + str);
String answer = (" ");
int lastpos = str1.length();
for(int currpos = str.length(); currpos >= 0; currpos--) //shazam
{
if (str1.charAt(currpos) == ' ')
{
for (int p = currpos+1; p <lastpos; p++) //majicks
answer = answer + str1.charAt(p);
lastpos = currpos;
System.out.println(answer);
}
}
return answer;
}
public static void main(String [] args)
{
System.out.println("Enter a string : ");
Scanner firststr = new Scanner(System.in); //gets string input
String str = firststr.next();
System.out.println(BackwardsString(str));
}
}
最佳答案
在第二个嵌套 for 循环之前将答案设置回 answer = ""
for(int currpos = str.length(); currpos >= 0; currpos--) //shazam
{
if (str1.charAt(currpos) == ' ')
{
answer = "";
for (int p = currpos+1; p <lastpos; p++) //majicks
answer = answer + str1.charAt(p);
lastpos = currpos;
System.out.println(answer);
}
}
关于java - 向后打印字符串中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25994475/