幾點意見前面:
的StringTokenizer是保留兼容性 原因,雖然它的使用是在新代碼氣餒的遺留類。建議 任何尋求此功能的人都使用字符串 或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
(給定.
和,
是否包括在內)?
我想還有其他的事情要考慮。
希望這有助於你開始。
感謝您的幫助和指導! – kunal18
@stalin當然,很高興幫助! –