当前,我正在尝试删除字符串数组中的破折号。我在下面尝试的代码无法正常工作。
splitTimeStamp[0].replaceAll("[\\s\\-()]", "");
System.out.println(splitTimeStamp[0]);
从另一个stackoverflow页面获得了replaceAll代码。
谢谢!
答案 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\\-()]", ""));