嗨,我在编程方面有点像菜鸟,但是我想创建一个IF语句,无论是否是textview(我已经引用过)都包含一个字母,只有那个字母,例如我想要更改代码中包含“1”的任何textview吗?这是我有的可以帮助我完成它吗?
if ("!".contains(stuff.getText()) {
stuff.setText("Incorrect Symbol");
}else {
}
我知道我可以使用键盘来控制可以输入的内容,但我希望有人会告诉我如何这样做。顺便说一句,我继续在stuff.gettext上得到一点红线,那么有人可以告诉我这个问题吗?
答案 0 :(得分:4)
我认为这里有两个主要问题:
假设“stuff”是您的TextView,您可以执行以下操作:
String stuffText = stuff.getText().toString();
if(stuffText.contains("1")) {
stuff.setText("Incorrect Symbol");
} else {
}
我不确定你为什么在stuff.getText()上得到红线,但是该行应该有一个相应的编译器错误,你可以在相应的视图中检查(假设你在像Eclipse这样的IDE中)
至于整体设计,这是一个糟糕的方式。您可以通过设置XML来指定字段接受的字符:
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="phone|numberSigned"
android:digits="0123456789" />
如果您真的想获得反馈,可能需要使用TextWatcher,以便您可以根据用户类型进行回复。
答案 1 :(得分:1)
使用 String.contains("yourCharacter") 检查字符串中是否存在您的字符。
所以,你的代码看起来像
if (stuff.getText().contains("!")) {
stuff.setText("Incorrect Symbol"); // your text contains the symbol
}else {
..... // your text does not contain the symbol
}
答案 2 :(得分:1)
如果你想看看它中只有一个“1” - 也就是输入的所有内容都是“1” - 那么你想要使用equals
,而不是包含。
假设stuff.getText()
返回输入的文字:
if("1".equals(stuff.getText())) {
// we'll end up here if the only thing in the input is 1
} else {
// otherwise we'll end up here
}
对于字母,您需要使用equalsIgnoreCase
进行不区分大小写的比较。
如果要检查输入是否包含字符,您将使用contains
方法而不是等于:
if(stuff.getText().contains("1")) {
// we end up here if the input text contains 1 somewhere in it
} else {
// otherwise we'll end up here
}
答案 3 :(得分:1)
if(stuff.gettext().toString().contains("!") {
stuff.setText("Incorrect Symbol");
} else {
}
答案 4 :(得分:1)
你可以这样做:
if (stuff.getText().contains("!"))
或
if(stuff.getText().indexOf("!") != -1)
如果给定的字符不在字符串中,indexOf
将返回-1
。
如上所述,indexOf
将一个字符作为参数,因此如果您想查看字符串是否包含某个子字符串,请使用contains
。
来自docs:
返回:第一次出现的字符的索引 此对象表示的字符序列,如果是字符,则为-1 不会发生。