仅替换字符串中的某些空格

时间:2013-11-04 18:02:33

标签: java split whitespace

我的字符串queryInputNameString等于fir, spotted owl,我正在尝试使用replaceAll()删除空格,split()分隔inputNameArray中的元素逗号出现时的{1}}数组。

String noSpaces = queryInputNameString.replaceAll("\\s+","");
String[] inputNameArray = noSpaces.split("\\,");

到目前为止,上述回报:

fir
spottedowl

但我希望它只删除逗号之前或之后发生的空格并返回:

fir
spotted owl

如何让我的代码忽略前面/后面没有逗号的空格?

感谢。

2 个答案:

答案 0 :(得分:5)

由于split()接受正则表达式作为参数,您可以直接执行此操作:

String[] inputNameArray = queryInputNameString.split("\\s*\\,\\s*");

否则,如果您真的想在逗号后面只替换空格,可以使用:

String noSpaces = queryInputNameString.replaceAll(",\\s+",",");

答案 1 :(得分:0)

您实际上不必使用更复杂的regex。如果你先用逗号split,然后用trim每个数组元素,你就会得到想要的结果。

在处理大量数据时,这种方法可能效果不佳。

String[] inputArray = queryInputNameString.split(",");
for (int i=0; i < inputArray.length, ++i) {
    inputArray[i] = inputArray[i].trim();
}