2012-01-24 15 views
1

文字列の最初の文字が "!"かどうかをチェックしたいと思います。これは素晴らしいですが、私が条件として使用する場合は毎回間違っています。私の例を見てください:文字列の最初の文字、条件として使用...(Java、Android)

next.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View view) { 
      EditText num = (EditText) findViewById(R.id.number); 
      String text = num.getText().toString(); 

      int len = text.length(); 

      String help = text; 

      String first = String.valueOf(help.charAt(0)); 

      if (len == 7 && first == "!") { 
       int value = text; 
       //... 
      } else { 
       int value2 = text; 
      } 

     } 
    }); 
文字列のための

おかげで...

+2

なぜ変数に格納するのですか?これを試してください、 'if(len == 7 && text.charAt(0)== '!'){' – Jens

答えて

5
ためString.equals()メソッドを使用する必要があります。

文字列の内容ではなくオブジェクト参照を比較するため、文字列を==と比較することはできません。 first.equals("!")を使用してください。

またはそれ以上は、文字列の中にあなたの文字を変換し、ちょうど2つの文字列が同じコンテンツを持っているかどうかを判断するために

char first = help.charAt(0); 
if (len == 7 && first == '!') 
2

使用equals

if (len == 7 && "!".equals(first)) {

+0

はい、これはうまくいきます、ありがとうございますVanathi! – moritzg

1

あなたは、文字列の平等

0

を使用していない、あなたはString.equals(文字列別の文字列)を使用する必要がありますメソッドではなく、 "=="ステートメントです。

実際には、文字列ではなく文字を比較するだけでいいのですが、text.charAt(0)== '!'

0

これらのうちのいくつかは、私のバージョンでは少なくとももう機能していないようです。文字列とcharを直接比較することはできません。代わりに、次の操作を行います。あなたがしたいのチェック、あなたの文字列が開始された文字から、場合

私はあなたのコードを少し変更した
String string = "!Android"; 
if(string.charAt(0) == "!".charAt(0)){ 
    //Do what you want here 
} 
0

、それは今

next.setOnClickListener(new View.OnClickListener() { 
public void onClick(View view) { 
     EditText num = (EditText) findViewById(R.id.number); 
     String text = num.getText().toString(); 

     int len = text.length(); 

     //String help = text; 

     //String first = String.valueOf(help.charAt(0)); 

     if (len == 7 && "!".equals(text.charAt(0))) { 
      int value = text; 
      //... 
     } else { 
      int value2 = text; 
     } 

    } 
}); 
0

に動作します

String name=txtname.getText().toString(); //get text from txt field 
        boolean s=name.startsWith("A"); 
        if(s) 
        { 
         edtfield.setText("your name start with A"); 
         //set value of field 

        } 
        else 
        { 
         edtmessagebody.setText("not start with A"); 
        } 

out put

関連する問題