Java 检查字符串中的某些字符

Java 检查字符串中的某些字符,java,string,validation,Java,String,Validation,我收到2个字符串作为输入。第一个是名字,第二个是符号。符号必须正好是2个字符。为了使符号有效,其字母必须按顺序出现在名称中。 例如 名称:“记事本”和 符号:“Nt”或“Te”将有效,但“Et”或“Da”无效 您可以构建自己的正则表达式来检查符号是否正确,例如: String str = "Notepad"; String symbole = "tN"; String regex = "(?i).*"; for(int i = 0; i<symbole.length(); i++){

我收到2个字符串作为输入。第一个是名字,第二个是符号。符号必须正好是2个字符。为了使符号有效,其字母必须按顺序出现在名称中。 例如 名称:“记事本”和
符号:“Nt”或“Te”将有效,但“Et”或“Da”无效

您可以构建自己的正则表达式来检查符号是否正确,例如:

String str = "Notepad";
String symbole = "tN";
String regex = "(?i).*";
for(int i = 0; i<symbole.length(); i++){
    regex+=symbole.charAt(i)+".*";
}
System.out.println(str.matches(regex));
(?i)
是否区分大小写


您可以构建自己的正则表达式来检查符号是否正确,例如:

String str = "Notepad";
String symbole = "tN";
String regex = "(?i).*";
for(int i = 0; i<symbole.length(); i++){
    regex+=symbole.charAt(i)+".*";
}
System.out.println(str.matches(regex));
(?i)
是否区分大小写

逻辑是-

  • 在字符串中查找“符号的第一个字符”

  • 如果找到,则在第一个字符的索引之后开始的字符串中找到“系统的第二个字符”

-

逻辑是——

  • 在字符串中查找“符号的第一个字符”

  • 如果找到,则在第一个字符的索引之后开始的字符串中找到“系统的第二个字符”

-


因此,符号不必是紧跟其后的2个字符的正确顺序?或者为什么Nt是有效的?如果nt无效,并且只有No、ot、te等有效,则可以使用字符串.contains()method@XtremeBaumer“Nt”是有效的,因为“N”在“T”之前,基本上只要符号中的第二个字母不在第一个字母之前,那么符号不必是紧跟其后的2个字符?或者为什么Nt是有效的?如果nt无效,并且只有No、ot、te等有效,则可以使用字符串.contains()method@XtremeBaumer“Nt”是有效的,因为“N”在“T”之前,基本上只要符号中的第二个字母不在第一个字母之前。
public boolean isValid(String str1, String str2){
    String t1, t2;
    t1 = str1.toLowerCase();
    t2 = str2.toLowerCase();

    if( t1.indexOf( t2.charAt(0) ) > -1 )
    if( t1.indexOf( t2.charAt(1), t1.indexOf(t2.charAt(0))) > -1 )
        return true;

    return false;
}