前もっていくつかのコメント:
StringTokenizer は、新しいコードでの使用は推奨されていませんが、互換性のために保持されているレガシー クラスです。この機能が必要な場合は、代わりに String の split メソッドまたは java.util.regex パッケージを使用することをお勧めします。
正規表現に関しては、実際には要件に依存します。上記を考えると、これはうまくいくかもしれません:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Mkt {
public static void main(String[] args) {
Pattern p = Pattern.compile("([$\\d.,]+)|([\\w\\d!$]+)");
String str = "--- FREE!! $50 192.168.1.1 $24,500";
System.out.println("input: " + str);
Matcher m = p.matcher(str);
while(m.find()) {
System.out.println("token: " + m.group());
}
}
}
実行例は次のとおりです。
$ javac Mkt.java && java Mkt
input: --- FREE!! $50 192.168.1.1 $24,500
token: FREE!!
token: $50
token: 192.168.1.1
token: $24,500
ここで、正規表現を微調整する必要がある場合があります。たとえば、次のようになります。
- あなたは
$24,500
例として挙げました。これはまたはのために働くべきです$24,500abc
か$24,500EUR
?
192.168.1.1
含める必要があると述べました。それも含める必要がありますか192,168.1,1
(与えられ.
、,
含まれる予定です)?
他にも考慮すべき点があると思います。
これがあなたが始めるのに役立つことを願っています.