我正在使用此代码:
StringTokenizer tokenizer=new StringTokenizer(line, "::");
分割以下字符串:
hi my name is visghal:: what is yor name name:: being thw simple my::: what is yor name name.
现在我想使用::
作为分隔符拆分字符串。它工作正常。但它也考虑了:::
。
换句话说,我想:
hi my name is visghal
what is yor name name
being thw simple my
: what is yor name name
相反,它给了我以下内容:
being thw simple my
what is yor name name
hi my name is visghal
::
和:::
同样如此。有没有办法避免这种情况?
答案 0 :(得分:6)
你可以像这样使用String#split:
String[] arr = str.split("::");
修改强>
String[] arr = str.split("::\\s*"); // for stripping spaces after ::
<强>输出:强>
hi my name is visghal
what is yor name name
being thw simple my
: what is yor name name
答案 1 :(得分:2)
如果您需要String.split
之外的其他功能,请尝试使用Guava Splitter。它将允许修剪和省略空字符串。
String myInput = "...";
Iterable<String> parts = Splitter.on("::").split(myInput);
答案 2 :(得分:0)
将::和:::视为相同
不,您的分隔符::
在此字符串部分:::
中找到两次,这是您的结果的解释。
您应该使用split("::")
方法。