Java删除字符串数组中的破折号

时间:2018-08-07 06:54:53

标签: java replaceall

当前,我正在尝试删除字符串数组中的破折号。我在下面尝试的代码无法正常工作。

splitTimeStamp[0].replaceAll("[\\s\\-()]", "");
System.out.println(splitTimeStamp[0]);

从另一个stackoverflow页面获得了replaceAll代码。

谢谢!

4 个答案:

答案 0 :(得分:10)

该方法返回一个新的@Ignore private final static long serialVersionUID = 4288061416169200241L; 。原来的不变。
您需要像这样保存结果

String

答案 1 :(得分:1)

这是Java8的一种实现方式。

String[] result = Arrays.stream(source)
    .map(s -> s.replaceAll("[\\s\\-()]", ""))
    .toArray(String[]::new);

与命令式方法相比,此方法更加并行友好。

答案 2 :(得分:0)

在使用String类时,您始终需要记住,如果String是不可变的类,则永远不要更改现有对象。因此String类的每个方法总是返回您需要重新分配的新对象。

您犯了同样的错误。请在调用replaceAll时将其分配回去,因为它不能更改现有的,因为它是不可变的。

答案 3 :(得分:0)

如果您要替换数组中的所有内容,我建议使用此解决方案:

String[] splitTimeStamp = //...some data
Arrays.setAll(splitTimeStamp, index -> splitTimeStamp[index].replaceAll("[\\s\\-()]", ""));
相关问题