Поэтому я хочу проверить, является ли первый символ строки "!". Это отлично работает, но если я использую его как условие, это неправильно каждый раз. Посмотрите на мой пример:
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;
}
}
});
Благодаря...
Вы не можете сравнивать строки с ==
, потому что они сравнивают ссылки на объекты, а не содержимое строк. Используйте first.equals("!")
.
Или лучше, не превращайте свой char в String и просто используйте
char first = help.charAt(0);
if (len == 7 && first == '!')
Используйте equals
для String,
if (len == 7 && "!".equals(first)) {
Вы должны использовать метод String.equals() для равенства строк
если вы хотите проверить, с какой буквы начинается ваша строка
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");
}
Некоторые из них, похоже, не работают, по крайней мере, в моей версии. Вы не можете напрямую сравнивать строки и символы. Вместо этого сделайте следующее:
String string = "!Android";
if(string.charAt(0) == "!".charAt(0)){
//Do what you want here
}
Я немного изменил код, теперь он будет работать
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;
}
}
});
чтобы определить, имеет ли две строки одинаковое содержимое, вам нужно использовать метод String.equals(String another string), а не оператор "==".
на самом деле, я думаю, вы могли бы сделать это лучше, почему бы просто не использовать сравнение char, а не строку, вызывая text.charAt(0) == '!'
if (len == 7 && text.charAt(0) == '!') {