瀏覽單個文章
prescott
Regular Member
 
prescott的大頭照
 

加入日期: Nov 2000
文章: 78
我也不是高手,因為我通常還是在新手區發問問題.
下面的code是我剛剛試的想法.比樓主的Code只多了Method觀念.
沒有註解因為時間晚.所以也沒去考慮其它的Supression Pattern.


import java.util.*;

public class ReverseString {

private StringBuffer tokenizedStr = null;

public ReverseString() {
tokenizedStr = new StringBuffer();
}

private void tokenizeIt(String name) {
StringTokenizer tokener = new StringTokenizer(name, " ");
while (tokener.hasMoreTokens()) {
tokenizedStr.append(reverseEachToken(tokener.nextToken()));
tokenizedStr.append(" ");
}
}//End tokenizeIt()

public String reverseEachToken(String str) {
StringBuffer strBuf = new StringBuffer(str);
int index = 0;
boolean isletter = true;
char letter;
while (isletter && index < strBuf.length()) {
letter = strBuf.charAt(index);
if (('A' <= letter && letter <= 'Z') || ('a' <= letter && letter <= 'z') || letter == '-' || letter == '"') {
index++;
} else {
isletter = false;
}
}
StringBuffer strBufTMP = new StringBuffer(strBuf.substring(0, index));
strBufTMP.reverse();
strBuf.replace(0, index, strBufTMP.toString());
strBufTMP = null;
return strBuf.toString();
}//End reverseEachToken()

public static void main(String[] args) {
ReverseString rs = new ReverseString();
rs.tokenizeIt("Hi~ what's your name?");
rs.tokenizeIt("hello!! I'm Prescott");
rs.tokenizeIt("And, how the word \"UNIX-Like\"?");
System.out.println(rs.tokenizedStr.toString());
}
}// End main()
 
舊 2004-05-15, 02:57 AM #12
回應時引用此文章
prescott離線中