2016-02-27 23 views
3

下面是基于分隔符创建标记的代码。这会给出令牌,但不会以令牌结果考虑分隔符。如果我们想在结果中包含分隔符,应该采用什么方法。如何在结果中捕获分隔符作为标记

StringTokenizer tr= 
new StringTokenizer("Will you come, yes/no",",/"); 
while (tr.hasMoreElements()) 
System.out.println(tr.nextElement()+","); 

所以输出应标记为:

意志,你,来了,是的,/,无,

(而不是仅仅将,你来了,是,否,)

+0

我不知道我是否清楚地了解你的需求,但它会给你期待什么,如果你的字符串是像'”你会来,是的,/,不是“' – user2004685

+0

而不是只是”你会,来,是,不是“我想要的结果为”会,你,来,是,/,没有' – Aajan

回答

3

/不会作为令牌之一,因为它没有被分隔符包围。如果你想将它解析为一个令牌,那么你可以用分隔符来包围它。

这里是代码片段:

public static void main (String[] args) 
{ 
    String sample = "Will you come,yes/no"; 
    StringTokenizer tr = new StringTokenizer(sample.replace(" ",",").replace("/",",/,"),","); 
    while (tr.hasMoreElements()) 
     System.out.println(tr.nextElement() + ","); 
} 

输出:

Will, 
you, 
come, 
yes, 
/, 
no, 
+0

我需要它作为威尔,你,是,来,是,/,不。空间应该被视为象征,并且,你来,应该是3个不同的标记。 – Aajan

+2

在这种情况下,您需要用分隔符替换空格。请检查更新的解决方案。 – user2004685

+1

谢谢。我有一个解决方案使用“true”指标,例如:StringTokenizer st = new StringTokenizer(“Hello,World | of | Java”,“,|”,true); (st.hasMoreElements()) System.out.println(“Token:”+ st.nextElement()); – Aajan

相关问题