我如何将所有未存储在当前变量guess 中的内容Pattern
替换为“-”?猜测会随着不同的方法调用而改变。我想用“-”替换任何不是字符猜测的东西(在这种情况下 => 'e')。
String word = "ally";
char guess = 'e';
String currentPattern = word.replaceAll("[^guess]", "-");
显然,这是行不通的。
你几乎拥有它。使用字符串连接:
String currentPattern = word.replaceAll("[^" + guess + "]", "-");
这种方法仅在您没有 regex 元字符的情况下才有效guess
,需要在字符类中进行转义。否则PatternSyntaxException
会抛出 a 。
这个问题表明,在您的情况下,您只将 a 添加char
到您的角色类中,PatternSyntaxException
即使您不逃避任何事情, a 也不会发生。
你快到了,只需使用+
连接运算符将猜测与正则表达式部分连接起来。
String word = "ally";
char guess = 'e';
String currentPattern = word.replaceAll("[^"+guess+"]", "-");
System.out.println(currentPattern);
您需要在正则表达式字符串中显式包含变量:
String word = "alely";
char guess = 'e';
System.out.println(word.replaceAll(String.format("[^%s]", guess), "-"));
把它变成一种方法?
public String replaceAllExcept( String input, char pattern ) {
return input.replaceAll( "[^" + pattern + "]", "-" );
}
System.out.println( replaceAllExcept( "ally", 'e' );
System.out.println( replaceAllExcept( "tree", 'e' );