所以我想检查一下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;
}
}
});
...谢谢
答案 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");
}