我尽了最大努力,这就是我到目前为止所做的一切。
String input = "hey,what up man:1033:yes,okay that makes sense ,not: okay:1111, aaaaa,bbbbb";
String input2 = input.replaceAll("(.*)\\s([^:,])+\\s(.*)", "\1\2\3");
String arguments[] = input2.split("[:,]");
预期输出:
参数[0] =“嘿”;
参数[1] =“什么了 man“;
arguments [2] =”1033“;
参数[3] =”是“;
争论[4] =“没有意义”;
论证[5] =“不”;
arguments [6] =“okay”;
arguments [7] =“1111”;
arguments [8] =“aaaaa”;
arguments [9] =“bbbbb”;
我需要能够获得所有10个参数并在每个分隔符;
和,
之前删除空白,并在每个分隔符之后立即删除所有空白。
如果只用单独拆分而不用替换就可以做到这一点很酷,我假设有一些非常专业的正则表达式技能,任何事情都可以在一个班轮中完成。
答案 0 :(得分:3)
您可以添加\\s*
来包含分隔符周围的空格。试试这种方式
String arguments[] = input.split("\\s*[:,]\\s*");
样本:
String input = "hey,what up man:1033:yes,okay that makes sense ,not: okay:1111, aaaaa,bbbbb";
String arguments[] = input.split("\\s*[:,]\\s*");
for (int i=0; i<arguments.length; i++){
System.out.println(i+")"+arguments[i]);
}
输出:
0)hey
1)what up man
2)1033
3)yes
4)okay that makes sense
5)not
6)okay
7)1111
8)aaaaa
9)bbbbb