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
你可以使用正则表达式.
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是为了确保没有其他符号具有特殊含义.