识别单个字母的代码?

时间:2013-02-13 16:57:42

标签: java android

嗨,我在编程方面有点像菜鸟,但是我想创建一个IF语句,无论是否是textview(我已经引用过)都包含一个字母,只有那个字母,例如我想要更改代码中包含“1”的任何textview吗?这是我有的可以帮助我完成它吗?

if ("!".contains(stuff.getText()) {
    stuff.setText("Incorrect Symbol");
}else {

}

我知道我可以使用键盘来控制可以输入的内容,但我希望有人会告诉我如何这样做。顺便说一句,我继续在stuff.gettext上得到一点红线,那么有人可以告诉我这个问题吗?

5 个答案:

答案 0 :(得分:4)

我认为这里有两个主要问题:

  • 你对语法
  • 有点困惑
  • Android经常使用CharSequence作为其文本值,而不是String,因此它使它更复杂。

假设“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   不会发生。