String的第一个char,用作条件...(Java,Android)

时间:2012-01-24 16:13:07

标签: java android

所以我想检查一下String的第一个字符是否是“!”。这很好用,但如果我把它作为一个条件,它每次都是错的。看看我的例子:

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;
            }

        }
    });

...谢谢

7 个答案:

答案 0 :(得分:6)

您无法将字符串与==进行比较,因为它会比较对象引用,而不是字符串的内容。使用first.equals("!")

或者更好的是,不要将您的char转换为String,只需使用

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

答案 1 :(得分:2)

使用equals表示字符串,

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

答案 2 :(得分:1)

必须使用String.equals()方法进行字符串相等

答案 3 :(得分:0)

确定两个字符串是否具有相同的内容,您必须使用String.equals(String另一个字符串)方法,而不是“==”语句。

实际上,我认为你可以做得更好,为什么不简单地通过调用text.charAt(0)=='!'来比较char而不是字符串。

答案 4 :(得分:0)

其中一些似乎不起作用,至少在我的版本中不再有效。您无法直接比较字符串和字符。相反,这样做:

String string = "!Android";
if(string.charAt(0) == "!".charAt(0)){
  //Do what you want here
}

答案 5 :(得分: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;
        }

    }
});

答案 6 :(得分: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