2016-09-26 17 views
0

javaの文字列の代わりに2文字をマスクできる正規表現パターンが必要です。しかし、入力文字列は予測できません。例マスク正規表現を使用して文字列内の代替文字を

String pattern = "abcdefgh"; 
OutPut: "ab\*\*ef\*\*" 

したがって、表現は共通である必要があります。これはあなたのために働くべきで上記の文字列

答えて

1

に特異的ではない:

public static void main(String[] args) { 
    String pattern = "abcdefghijklmnop"; 
    System.out.println(pattern.replaceAll("(\\w{2})(\\w{2})", "$1**")); 
} 

O/P:

ab**ef**ij**mn** 

replaceAll("(\\w{2})(\\w{2})", "$1**")) ==> *、2グループの2つの文字」と2つの文字それぞれを置き換え* "。

奇数の文字がある場合、最後の文字はマスクされません。これは修正する必要があります==>System.out.println(pattern.replaceAll("(\\w{2})(\\w{2})", "$1**").replaceAll("(\\w{2})\\w$", "$1*"));

+0

ありがとう、しかし、文字列のように奇数の番号を与えている場合、私はそれを発見したことの一つは、ex = "1234567"; 12 ** 567これを12 ** 56 * – Jam

+0

@Jamに変更できますか?私の編集を確認してください – TheLostMind

+0

@Jam - ここで 'Pattern'と' Matcher'を使うとより良い解決策になります:) – TheLostMind

関連する問題