Первый символ String, используйте как условие… (Java, Android)

1

Поэтому я хочу проверить, является ли первый символ строки "!". Это отлично работает, но если я использую его как условие, это неправильно каждый раз. Посмотрите на мой пример:

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) == '!') {
Теги:

7 ответов

5
Лучший ответ

Вы не можете сравнивать строки с ==, потому что они сравнивают ссылки на объекты, а не содержимое строк. Используйте first.equals("!").

Или лучше, не превращайте свой char в String и просто используйте

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

Используйте equals для String,

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

  • 0
    Да, это работает, большое спасибо Ванати!
1

Вы должны использовать метод String.equals() для равенства строк

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

Изображение 174551

0

Некоторые из них, похоже, не работают, по крайней мере, в моей версии. Вы не можете напрямую сравнивать строки и символы. Вместо этого сделайте следующее:

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.equals(String another string), а не оператор "==".

на самом деле, я думаю, вы могли бы сделать это лучше, почему бы просто не использовать сравнение char, а не строку, вызывая text.charAt(0) == '!'

Ещё вопросы

Сообщество Overcoder
Наверх
Меню