0

我想知道以下代码有什么问题。

public void onClickSave (View cs)
{
    Pattern pattern = Pattern.compile("@");
    Matcher matcher = pattern.matcher(userid);
    boolean found = matcher.find();

      if(found){
         //do stuff

所以目标是检查字符串中的@符号。不知道我错过了什么新的Java。谢谢你的帮助

4

4 回答 4

3

为什么你不尝试使用 contains 方法?

String userID = "@Test";
boolean found = userID.contains("@");

但这也对我有用:

String userID = "@Test";
Pattern pattern = Pattern.compile(".*@.*");
Matcher matcher = pattern.matcher(userID);
boolean found = matcher.find();
于 2012-07-20T21:35:22.617 回答
2

正则表达式在这里是多余的,你可以用这个contains方法完成同样的事情,

if(userid.contains("@")){
   //Do something.
于 2012-07-20T21:34:04.707 回答
1

试试这个:

if(userid.contains("@") {
   //do stuff
}
于 2012-07-20T21:33:30.730 回答
1

要么使用String#contains,要么

  1. 将字符串转换为字符数组
  2. 遍历每个字符,直到@找到该字符(如果有的话)

使用正则表达式来完成这样一个微不足道的任务是不必要的,而且过于复杂。

于 2012-07-20T21:33:35.290 回答