所以我在計算機科學課上遇到了一些麻煩。我需要編寫一些代碼,這些代碼需要一個字符串並以反向字符順序向後打印。他告訴我找到一個空白空間,然後從那裏打印,然後繼續搜索....並重復此操作直到字符串結束。我輸入了我的代碼,並將它打印出第一個單詞三次。我知道這對你們來說可能很明顯。向後打印字符串
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