Java StreamTokenizer を使用して文字列のさまざまな単語と数字を抽出していますが、コンマを含む数字が関係する問題に遭遇しました。
また、数字以外の文字が発生する可能性がある場合は、数字からすべての文字を削除する必要があります。たとえば、$678.00 は 678.00、-87 は 87 にする必要があります。
これらは whiteSpace および wordChars メソッドを介して実現できると思いますが、その方法を知っている人はいますか?
現在の基本的な streamTokenizer コードは次のとおりです。
BufferedReader br = new BufferedReader(new StringReader(text));
StreamTokenizer st = new StreamTokenizer(br);
st.parseNumbers();
st.wordChars(44, 46); // ASCII comma, - , dot.
st.wordChars(48, 57); // ASCII 0 - 9.
st.wordChars(65, 90); // ASCII upper case A - Z.
st.wordChars(97, 122); // ASCII lower case a - z.
while (st.nextToken() != StreamTokenizer.TT_EOF) {
if (st.ttype == StreamTokenizer.TT_WORD) {
System.out.println("String: " + st.sval);
}
else if (st.ttype == StreamTokenizer.TT_NUMBER) {
System.out.println("Number: " + st.nval);
}
}
br.close();
または、誰かがこれを達成するために REGEXP を提案できますか? トークンが文字列から読み取られた後にパーディングが行われることを考えると、ここで REGEXP が役立つかどうかはわかりません。
ありがとう
モーガンさん。