我需要使用分隔符來標記字符串。java中的字符串令牌化
StringTokenizer
能夠使用給定的分隔符來標記字符串。但是,如果字符串中有兩個連續的分隔符,那麼它不會將其視爲標記。
在此先感謝您的幫助
問候,
我需要使用分隔符來標記字符串。java中的字符串令牌化
StringTokenizer
能夠使用給定的分隔符來標記字符串。但是,如果字符串中有兩個連續的分隔符,那麼它不會將其視爲標記。
在此先感謝您的幫助
問候,
public StringTokenizer(String str,
String delim)
構造爲指定字符串string tokenizer。 delim argument
中的字符是分隔令牌的分隔符。 分隔符本身不會被視爲標記。
因此,對於可以使用..
String.split(String delim);
值得一提的是它實現了Enumeration接口。請參閱http://docs.oracle.com/javase/1.4.2/docs/api/java/util/StringTokenizer.html – Dennis 2011-12-21 09:44:23
的第二個參數StringTokenizer
對象的構造僅僅是包含所有您需要的分隔符的字符串。
StringTokenizer st = new StringTokenizer(str, "@!");
在這種情況下,有兩個分隔符都@
和!
考慮這個例子:
String s = "Hello, i am using Stack Overflow;";
System.out.println("s = " + s);
String delims = " ,;";
StringTokenizer tokens = new StringTokenizer(s, delims);
while(tokens.hasMoreTokens())
System.out.println(tokens.nextToken());
在這裏,你會得到類似這樣的輸出與3個分隔符:
Hello
,
i
am
using
Stack
Overflow
;
使用java.lang.String的split()方法並傳遞它是一個正則表達式,它匹配您的一個或多個分隔符條件。
例如, "a||b|||c||||d"
可以標記化用split("\\|{2,}");
用所得陣列[a,b,c,d]
的'StringTokenizer'的javadocs狀態'的StringTokenizer是保持兼容性的原因,儘管其使用在新代碼氣餒的遺留類。建議任何尋求此功能的人都使用String或java.util.regex包的拆分方法代替。「所以你應該看看mcfinnigan和Francois提供的答案。 – Qwerky 2011-12-22 14:56:17