簡體   English   中英

從java中的字符串替換多個char

[英]Replacing multiple char from a string in java

我有一個PHP腳本<?=str_replace(array('(',')','-',' ','.'), "", $rs["hq_tel"])?>這是一個字符串替換獲取字符數組的函數,如果在字符串中找到任何字符,則替換它們。 是否有任何java等效的函數。 我發現了一些方法,但有些方法是使用循環,有些方法重復這些語句,但在java中找不到任何單行解決方案。

提前致謝。

你可以使用這樣的正則表達式:

//char1, char2 will be replaced by the replacement String. You can add more characters if you want!
String.replaceAll("[char1char2]", "replacement");

其中第一個參數是regex ,第二個參數是replacement參數。

請參閱有關如何轉義特殊字符的文檔 (如果您需要!)。

你的解決方案在這里..

替換所有特殊字符

str.replaceAll("[^\\dA-Za-z ]", "");

替換特定的特殊字符

str.replaceAll("[()?:!.,;{}]+", " ");

String.replaceAll(String regex, String replacement)

如果你不了解正則表達式,你可以使用更詳細的東西:

private static ArrayList<Character> special = new ArrayList<Character>(Arrays.asList('(', ')', '-', ' ', '.'));

public static void main(String[] args) {
    String test = "Hello(how-are.you ?";
    String outputText = "";

    for (int i = 0; i < test.length(); i++) {
        Character c = new Character(test.charAt(i));
        if (!special.contains(c))
            outputText += c;
        else
            outputText += "";
    }

    System.out.println(outputText);
}

輸出: Hellohowareyou?

編輯(沒有循環,但有正則表達式)

public static void main(String[] args) {
    String test = "Hello(how-are.you ?)";
    String outputText = test.replaceAll("[()-. ]+", "");

    System.out.println(outputText);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM