最近看不少人問程式問題,
如果你覺得很簡單,請不要罵我,幫幫忙吧。
這支程式,我已經想了一個禮拜了。
我想做反字串的功能。
例如:
輸入:Hi~ what's your name?
輸出:iH~ tahw's ruoy eman?
但是以下的程式只會
輸出:iH~ s'tahw ruoy eman?
import javax.swing.*;
import java.util.*;
class ReverseString{
public static void main(String[] args){
String name = JOptionPane.showInputDialog(null,"Enter a string");
StringTokenizer tokener = new StringTokenizer ( name , " " ) ;
StringBuffer inputStringBuffer = new StringBuffer();
StringBuffer inputStringBuffer2 = new StringBuffer();
while ( tokener.hasMoreTokens() ){
//用token拆單字,以空格為區隔
String s = tokener.nextToken();
for(int i = 0; i < s.length(); i++) {
char letter = s.charAt(i);
//依序讀入單字的字元
if (((int)letter>=65&&(int)letter<=90)||((int)letter>=97&&(int)letter<=122)) {
//如果是英文字母就依序排好
inputStringBuffer2.append(letter);
}else{
inputStringBuffer.append(letter);
//如果不是英文字母也是依序排好
}
}
inputStringBuffer2 = inputStringBuffer2.reverse();
//將單字的英文字母整串相反
System.out.print(" "+inputStringBuffer2+inputStringBuffer);
inputStringBuffer2.setLength(0);
//清空暫存器的字元
inputStringBuffer.setLength(0);
}
}
}
加上一點註解,應該會好讀一點
