前面有几条评论:
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
or$24,500EUR
吗?
- 你提到
192.168.1.1
的应该包括在内。它是否还应该包括192,168.1,1
(给定.
和,
将要包括在内)?
我想还有其他事情需要考虑。
希望这有助于您入门。