Java 检查字符串中的某些字符
我收到2个字符串作为输入。第一个是名字,第二个是符号。符号必须正好是2个字符。为了使符号有效,其字母必须按顺序出现在名称中。 例如 名称:“记事本”和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++){
符号:“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;
}