0

我有queryInputNameString一个等于的字符串,fir, spotted owl我试图用它replaceAll()来删除空格并在出现逗号时split()分隔数组中的元素。inputNameArray

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

到目前为止,以上返回:

fir
spottedowl

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

fir
spotted owl

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

谢谢。

4

2 回答 2

5

由于split()接受正则表达式作为参数,您可以直接这样做:

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

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

String noSpaces = queryInputNameString.replaceAll(",\\s+",",");
于 2013-11-04T18:05:41.263 回答
0

您实际上不必使用更复杂的regex. 如果您只是split先使用逗号,然后再使用trim每个数组元素,您将获得所需的结果。

在处理大量数据时,这种方法可能会被证明效率较低。

String[] inputArray = queryInputNameString.split(",");
for (int i=0; i < inputArray.length, ++i) {
    inputArray[i] = inputArray[i].trim();
}
于 2013-11-04T18:14:31.350 回答