我有字符串(电话号码)的阵列,并且我需要删除+
,这是在元件(数字)中的一个的前面,因为它会引发NumberFormatException
当我尝试将它转换为int。Java - 如何删除字符串数组中的特殊字符?
阵列中的元素是0888888888
0888123456
+359886001122
并且我已经使用了.split(" ")
以将它们分开。我也试过,以便从最后一个删除+
.split(" +")
,但这并没有工作。
我有字符串(电话号码)的阵列,并且我需要删除+
,这是在元件(数字)中的一个的前面,因为它会引发NumberFormatException
当我尝试将它转换为int。Java - 如何删除字符串数组中的特殊字符?
阵列中的元素是0888888888
0888123456
+359886001122
并且我已经使用了.split(" ")
以将它们分开。我也试过,以便从最后一个删除+
.split(" +")
,但这并没有工作。
你必须使用replaceAll
,而不是split
,例如:如果要分割每个可split(" ")
喜欢这个号码
0888888888 0888123456 359886001122
//-------------------^------------
然后:
"0888888888 0888123456 +359886001122".replaceAll("\\+", "");
这会告诉你:
String numbers[] = "0888888888 0888123456 +359886001122".replaceAll("\\+", "").split(" ");
System.out.println(Arrays.toString(numbers));
这会给你:
[0888888888, 0888123456, 359886001122]
编辑
或者像@shmosel在评论说你CA使用replace("+", "")
您可以
var lv_numbers = "0888888888 0888123456 +359886001122".replace('+','');
拆分更换使用正则表达式,所以你可以定义在分割匹配器中包含和可选的'+'。
String [] result = "0888888888 0888123456 +359886001122".split("\\s[\\+]{0,1}");
'分裂(” + “)'不会工作,因为'+'是需要被转义特殊字符的正则表达式:'分裂(” \\ + “)' – shmosel