在leetcode.com上看到一道題:輸入一個字符串,要求寫一個程序讓它把字符串反轉,然後打印出來。比如,當輸入the sky is blue
, 程序需要輸出blue is sky the.
昨天琢磨了一下午,終於用java搞出來了,還是有些成就感的。靈感來自於我現在正在看的兩本關於java的書,讓我想到了用StringTokenizer。所以,多看書還是很用幫助的。
下面是我的java代碼:
import java.util.*; import java.io.*; class Solution { public static void main(String[] args) { System.out.println("Please Input A String Here: "); Scanner s=new Scanner(System.in); String str=s.nextLine(); System.out.println(reverseWords(str)); } public static String reverseWords(String s) { StringTokenizer st=new StringTokenizer(s," ");//以空格爲分隔符分割輸入的字符串 int count=st.countTokens();//分割字符串後單詞的數量 String array[]=new String[count]; String str=" "; int i=0; while(st.hasMoreTokens()) //把分割後的單詞複製給數組元素 { array[i]=st.nextToken(); i=i+1; } for(int x=array.length-1;x>=0;x--) //拼接字符串 { str=str+" "+array[x]; } String result=str.trim(); //清除頭和尾的空格 return result; } }