1

Pattern現在の変数guessに格納されていないものをすべて「-」に置き換えるにはどうすればよいですか?推測は、メソッド呼び出しが異なれば変化します。charguess(この場合は=>'e')以外のものを"-"に置き換えたい。

String word = "ally";
char guess = 'e';
String currentPattern = word.replaceAll("[^guess]", "-");

明らかに、これは機能しません。

4

4 に答える 4

4

あなたはほとんどそれを持っています。文字列連結を使用します。

String currentPattern = word.replaceAll("[^" + guess + "]", "-");

このアプローチは、に正規表現メタ文字がない場合にのみ機能します。これらのメタguess文字は、文字クラス内でエスケープする必要があります。それ以外の場合は、PatternSyntaxExceptionがスローされます。

この質問charは、キャラクタークラスにを追加するだけの場合、PatternSyntaxException何もエスケープしなくても、が発生しないことを示しています。

于 2013-02-21T07:54:21.970 に答える
0

+もうすぐです。連結演算子を使用して、推測を正規表現部分と連結します。

            String word = "ally";
        char guess = 'e';
        String currentPattern = word.replaceAll("[^"+guess+"]", "-");
        System.out.println(currentPattern);
于 2013-02-21T07:54:46.017 に答える
0

正規表現文字列に変数を明示的に含める必要があります。

String word = "alely";
char guess = 'e';
System.out.println(word.replaceAll(String.format("[^%s]", guess), "-"));
于 2013-02-21T07:59:04.940 に答える
0

それをメソッドに変えますか?

public String replaceAllExcept( String input, char pattern ) {
    return input.replaceAll( "[^" + pattern + "]", "-" );
}

System.out.println( replaceAllExcept( "ally", 'e' );
System.out.println( replaceAllExcept( "tree", 'e' );
于 2013-02-21T07:59:11.680 に答える