所以我在计算机科学课上遇到了一些麻烦。我需要编写一些代码,这些代码需要一个字符串并以反向字符顺序向后打印。他告诉我找到一个空白空间,然后从那里打印,然后继续搜索....并重复此操作直到字符串结束。我输入了我的代码,并将它打印出第一个单词三次。我知道这对你们来说可能很明显。向后打印字符串
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));
}
}
你的意思是这样吗? http://stackoverflow.com/questions/9105277/reverse-string-word-by-word-in-java – Rockstar 2014-09-23 12:02:09
我试着你的代码与字符串“第一第二第三第四”,并得到了输出“第四第三secondfirst”。唯一的问题是你没有在反转的单词之间添加空格。也就是说,有很多方法可以改善您的代码,正如其他答案中所建议的那样。 – Eran 2014-09-23 12:12:07
你怎么会认为我得到“输入的字符串: 第一第二第三第四 第一 第一” – 2014-09-23 12:37:40