我有字符串(電話號碼)的陣列,並且我需要刪除+
,這是在元件(數字)中的一個的前面,因爲它會引發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