检查一个字符串是否包含正确位置的子字符串
所以我的任务是检查一个电子邮件是否有特定的形式。它必须是[email protected]
,其中x
可以是其他任何东西,但其余是必须的。检查一个字符串是否包含正确位置的子字符串
如果剩下的稍有不同,我必须打印该用户不被接受。我不知道该怎么做。我写了没有代码,因为我不知道如何解决这个问题。
您可以使用正则表达式。
符合您输入的模式是:^it\w*@uom.edu.gr
。所述\w*
装置
零个或多个任何字字符(字母,数字,下划线)的
如果要例如包括多个符号“”但排除了“@”原因很明显,你可以换着花样用[^@]*
这意味着
零个或多个任何单个字符不包括“@”的。
因此模式变为:^it[^@]*@uom.edu.gr
使用任何两套西装的您的需求。
示例代码:
Pattern p = Pattern.compile("^it\\w*@uom.edu.gr");
Matcher m = p.matcher("[email protected]");
boolean b = m.matches();
以上可以按你一直要求扩大,如:
public static void main(String[] args)throws Exception{
String email = "[email protected]";
Pattern p = Pattern.compile("^it\\w*@uom.edu.gr");
Matcher m = p.matcher(email);
boolean b = m.matches();
if(b) {
System.out.println("Valid email");
} else {
System.out.println("Invalid email.");
}
}
这是该工作的正确解决方案。一个细节,严格来说'\ w *'不匹配“任何”,只有a-zA-Z_0-9。这可能已经足够好了,或者您可能希望接受更多的角色,具体取决于您对电子邮件地址的了解。 –
@ OleV.V。你指出它是正确的,一个更好的模式将是:'^ it [^ @] * @ uom.edu.gr' – pleft
使用startsWith和的endsWith
String var = "[email protected]";
if(var.startsWith("it") && var.endsWith("end.com")){
// your code
}
else {
// String do not start with it or it does not end end.com
}
尝试使用正则表达式。 – Pein
可能的重复[如何检查一个字符串是否包含另一个字符串在Java中不区分大小写的方式?](http://*.com/questions/86780/how-to-check-if-a-string-contains-另一个字符串不区分大小写in) –
查看[String]的indexOf方法(http://docs.oracle.com/javase/7/docs/api/java/ lang/String.html)类。 –