Java 字符串标记器,分隔符
我正在使用以下代码:Java 字符串标记器,分隔符,java,string,tokenize,Java,String,Tokenize,我正在使用以下代码: 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 y
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
它将:
和:
视为相同。有什么方法可以避免这种情况吗?您可以像这样使用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
输出:
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
如果您需要在String.split
上添加其他功能,请尝试番石榴。它将允许修剪和省略空字符串
String myInput = "...";
Iterable<String> parts = Splitter.on("::").split(myInput);
String myInput=“…”;
Iterable parts=Splitter.on(“:”).split(myInput);
它将::和:::视为相同
不,您的delimeter:
在此字符串部分中找到两次:
,这是对您的结果的解释
您应该使用
split(“::”
方法。StringTokenizer已被弃用,请避免使用它