0
我有一個StreamTokenizer將標記字符串。我感興趣的是從String中獲取下一個標記的方法,以及剩餘的String(沒有我們剛剛拿過的標記)。使用StreamTokenizer獲取下一個令牌和剩餘字符串
public static void parseString(String s){
StreamTokenizer st = new StreamTokenizer(new StringReader(s));
try {
while (st.nextToken() != st.TT_EOF){
if (st.ttype == st.TT_WORD){
System.out.println("Word: " + st.sval);
if (st.sval.equals("start")){
start(st.sval, ???)
}
}
else if (st.ttype == st.TT_NUMBER){
System.out.println("Number: " + st.nval);
}
else if (st.ttype == '\''){
System.out.println(st.sval);
}
else{
System.out.println((char)st.ttype);
}
}
} catch (IOException e){}
}
public String start(String text, String theRest){
return "<start>" + text + "" + parseString(theRest) + "</start>";
}
有些事情我已經試過:
我剛剛使用原來的String,但它經過標記化它StreamTokenizer極不改變一個字符串嘗試(我忘了這個詞來形容這個)。
我可以找到當前令牌的索引,並將該令牌從原始字符串中分割出來。
我想知道是否有更優雅的方式去做這件事?
謝謝保羅,我將使用索引和子字符串,直到其他人建議更聰明的方式。 –