我需要使用分隔符来标记字符串。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