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

时间:2017-03-15 11:04:37

标签: java arrays

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

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

3 个答案:

答案 0 :(得分:9)

您必须使用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在评论中说的那样你可以使用replace("+", "")

答案 1 :(得分:0)

您可以将其替换为

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

答案 2 :(得分:0)

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

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