Java-如何删除字符串数组中的特殊字符?

Java-如何删除字符串数组中的特殊字符?,java,arrays,Java,Arrays,我有一个字符串数组(电话号码),我需要删除+,它位于其中一个元素(号码)的前面,因为当我试图将它转换为int时,它会抛出一个NumberFormatException 数组中的元素是088888880888123456+359886001122,我已经使用了.split(“”)来分隔它们。我还尝试了.split(“+”,以便从上一个中删除+,但这不起作用。您必须使用replaceAll而不是split,例如: "0888888888 0888123456 +359886001122".repla

我有一个字符串数组(电话号码),我需要删除
+
,它位于其中一个元素(号码)的前面,因为当我试图将它转换为int时,它会抛出一个
NumberFormatException


数组中的元素是
08888888
0888123456
+359886001122
,我已经使用了
.split(“”
)来分隔它们。我还尝试了
.split(“+”
,以便从上一个中删除
+
,但这不起作用。

您必须使用
replaceAll
而不是
split
,例如:

"0888888888 0888123456 +359886001122".replaceAll("\\+", "");
这将向您展示:

0888888888 0888123456 359886001122
//-------------------^------------
然后,如果要拆分每个数字,可以使用如下方式使用
split(“”

String numbers[] = "0888888888 0888123456 +359886001122".replaceAll("\\+", "").split(" ");
System.out.println(Arrays.toString(numbers));
这将为您提供:

[0888888888, 0888123456, 359886001122]
编辑


或者像@shmosel在评论中说的,你可以使用
替换(“+”,”)
你可以用

var lv_numbers = "0888888888 0888123456 +359886001122".replace('+','');

Split使用正则表达式,因此您可以定义在拆分匹配器中包含和可选的“+”

String [] result = "0888888888 0888123456 +359886001122".split("\\s[\\+]{0,1}");

split(“+”)
不起作用,因为
+
是一个需要转义的特殊正则表达式字符:
split(\\+”
或只是
replace(“+”,”)
@shmosel不带斜杠它会在线程“main”中引发错误
异常java.util.regex.PatternSyntaxException:在索引0附近悬空的元字符“+”不使用regex.aaahhh,好的,我知道@shmosel您使用的是
replace
,我使用
replaceAll
因为我得到了这个错误,是的,您是正确的,这可以用
replace(“+”,”)
完成,没有问题,我已经被这咬了好几次,所以我想和大家分享这个解决方案:D