如何编写一个方法来检查字符是否与参数匹配?

Mic*_*ael 1 java string

class A{
private String name ;

public A(String name){
    this.name = name ;
}


public boolean isName(String nameCheck){
    boolean is = true ;
    if(nameCheck.matches(name)){
        return is;
    }else return !is ;

}
}
public class Test{
public static void main(String[] args){
    A object = new A("CHIU Shun Kin");

    System.out.println(object.isName("?HIU Sh?? ?in"));

}
Run Code Online (Sandbox Code Playgroud)

}

我的主要职责是检查输入名称是否与定义的名称(变量名称)匹配,但是"?" 角色不会被比较.以上是我的代码.我不知道怎么不比较"?" 字符.

这是样本:

名称:"邱顺健"

nameCheck:"?HIU Sh ?? ?in"返回true

nameCheck:"CKIU Sh ?? ?in"返回false

Pet*_*rey 8

你可以使用正则表达式.

String regex = "?HIU Sh?? ?in".replaceAll("\\?", "."); // change your format to a regex

boolean matches = "CHIU Shun Kin".matches(regex);
Run Code Online (Sandbox Code Playgroud)

所以在你需要的情况下

public boolean isName(String nameCheck) {
    return name.matches(Pattern.quote(nameCheck).replaceAll("\\\\?", "."));
}
Run Code Online (Sandbox Code Playgroud)

Pattern.quote是为了确保没有其他符号具有特殊含义.