检查某些字符的字符串

时间:2017-05-05 07:45:59

标签: java string validation

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

2 个答案:

答案 0 :(得分:2)

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

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));

例如输出:

Symbole          Regex           Result

tN              (?i).*t.*N.*     false
Nt              (?i).*N.*t.*     true
Nd              (?i).*N.*d.*     true
NeD             (?i).*N.*e.*D.*  true

(?i)不区分大小写?

Ideone demo

答案 1 :(得分:0)

逻辑是 -

  • 在字符串

  • 中找到“符号的第一个字符”
  • 如果找到,则在第一个

  • 索引之后的字符串中找到“系统的第二个字符”

-

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;
}