Java 删除字符串数组中的破折号
Java Remove Dash In String Array
目前我正在尝试删除字符串数组中的破折号。我在下面尝试的代码无效。
splitTimeStamp[0].replaceAll("[\s\-()]", "");
System.out.println(splitTimeStamp[0]);
从另一个 Whosebug 页面获取了 replaceAll 代码。
提前致谢!
方法returns一个新的String
。原来的没变。
您需要像这样保存结果
splitTimeStamp[0] = splitTimeStamp[0].replaceAll("[\s\-()]", "");
System.out.println(splitTimeStamp[0]);
这里有一个 Java8 的方法。
String[] result = Arrays.stream(source)
.map(s -> s.replaceAll("[\s\-()]", ""))
.toArray(String[]::new);
这种方法比命令式方法更加并行友好。
在使用 String class 时,您始终需要记住,如果 String 是不可变的 class,则永远不要更改现有对象。所以 String class 的每个方法总是 returns 您需要重新分配的新对象。
同样的错误是你犯的。请在调用 replaceAll 时将其重新分配,因为它不能更改现有的,因为它是不可变的。
如果您想替换数组中的所有内容,我建议您使用以下解决方案:
String[] splitTimeStamp = //...some data
Arrays.setAll(splitTimeStamp, index -> splitTimeStamp[index].replaceAll("[\s\-()]", ""));
目前我正在尝试删除字符串数组中的破折号。我在下面尝试的代码无效。
splitTimeStamp[0].replaceAll("[\s\-()]", "");
System.out.println(splitTimeStamp[0]);
从另一个 Whosebug 页面获取了 replaceAll 代码。
提前致谢!
方法returns一个新的String
。原来的没变。
您需要像这样保存结果
splitTimeStamp[0] = splitTimeStamp[0].replaceAll("[\s\-()]", "");
System.out.println(splitTimeStamp[0]);
这里有一个 Java8 的方法。
String[] result = Arrays.stream(source)
.map(s -> s.replaceAll("[\s\-()]", ""))
.toArray(String[]::new);
这种方法比命令式方法更加并行友好。
在使用 String class 时,您始终需要记住,如果 String 是不可变的 class,则永远不要更改现有对象。所以 String class 的每个方法总是 returns 您需要重新分配的新对象。
同样的错误是你犯的。请在调用 replaceAll 时将其重新分配,因为它不能更改现有的,因为它是不可变的。
如果您想替换数组中的所有内容,我建议您使用以下解决方案:
String[] splitTimeStamp = //...some data
Arrays.setAll(splitTimeStamp, index -> splitTimeStamp[index].replaceAll("[\s\-()]", ""));