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 に答える