我有一個String(StringTo)
這樣格式化字符串:要刪除的電話號碼
John [0775678899] ,Ann [0776789988] ,Mary [0777789900]
但我需要格式化字符串顯示爲:
John, Ann, Mary
我嘗試使用下面的方法,但它沒有給我預期的結果:
StringTo = StringTo.replace("//[^10] ,/", ", ");
有人可以告訴我什麼是錯的或任何其他方式來計算這個?
我有一個String(StringTo)
這樣格式化字符串:要刪除的電話號碼
John [0775678899] ,Ann [0776789988] ,Mary [0777789900]
但我需要格式化字符串顯示爲:
John, Ann, Mary
我嘗試使用下面的方法,但它沒有給我預期的結果:
StringTo = StringTo.replace("//[^10] ,/", ", ");
有人可以告訴我什麼是錯的或任何其他方式來計算這個?
試試這個,它會格式化的空白正確:
StringTo = StringTo.replaceAll("\\s*\\[\\d+\\]\\s*(,?)", "$1 ");
輸入:
John [0775678899] ,Ann [0776789988] ,Mary [0777789900]
輸出:
John, Ann, Mary
與空字符串
更換正則表達式\[\d+\]
如果我理解正確的你 - 你需要刪除裏面[]
所有數字。試試這個:
StringTo.replaceAll("\\[.*?\\] ","");
雖然這將有點太鬆。 '[abc]'也將被這個替換。 – nhahtdh
@nhahtdh沒有限制,只有數字應該被刪除。可能有些編號可能包含字母或空格,誰知道。 –
public static void main(String[] args) {
String s = "John [0775678899] ,Ann [0776789988] ,Mary [0777789900]";
String[] ss = s.split(",");
ArrayList<String >name = new ArrayList<String>();
for(int i = 0; i< ss.length; i++){
String[]splitted = ss[i].split("\\[");
name.add(splitted[0]);
}
System.out.println(name);
}
輸出:
[John , Ann , Mary ]
感謝它的完美! – user1266343