2015-05-11 55 views
0

我可以在哪里得到StringTokenizerdelim format?Java StringTokenizer - delim格式

比如我有这个字符串:

tokens = new StringTokenizer(s.nextLine(), "-|\\+|/|\\*", true); 

几次尝试后,我加入\\和表达开始工作,但我不知道我为什么要逃离这个符号,在StringTokenizer类引用了不付信息。

+0

您的字符串标记符分隔符是'-','''','/',''','+'和'*'。你确定这就是你的意图吗? – RealSkeptic

+0

不,我只需要:'()+ - * /'为计算器,但我现在不怎么格式化* delim *字符串。 – Sonique

+1

你不应该格式化它。分隔符只是其中的字符。它没有格式。 [documentation](http://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html#StringTokenizer(java.lang.String,%20java.lang.String,%20boolean))说:“'delim'参数中的所有字符都是分隔令牌的分隔符。” – RealSkeptic

回答

0

转义'\'字符是在任何字符串(或甚至char)中使用它的结果。它与StringTokenizer.没有任何关系,这就是为什么你看不到有关逃避反斜杠('\')的原因。

String x = "Windows likes using '\\' in path info."; 
System.out.println(x); 

给人

Windows likes using '\' in path info.

同样

char c = '\\'; 
System.out.println("c = " + c); 

给人

c = \ 

因此,事实上,你是给 '\' 作为分隔符的StringTokenizer的字符串参数迫使你逃避它一个额外的反斜杠。