我在我的应用程序中有一个包含数字和字母的文本视图,我想做的只是从其中获取数字并应用一个if语句。与…有关的东西;
if (number == 1) {
// do something
} else if (number == 2) {
// do something
} else if (number >= 8) {
// do something
}
我已经像这样声明了我的文本视图;
TextView textview = (TextView) findViewById(R.id.number);
文本视图将包含类似于本文的文本。
textview.setText("1\nperson");
textview.setText("2\nperson");
textview.setText("3\nperson");
....
....
....
我想做的只是得到文本,然后使用下面显示的if语句来执行任务,这取决于数字。任何帮助都会很好。
发布于 2016-01-22 09:49:30
由于您希望允许使用字母数字字符,所以我将使用以下内容:
String value = textView.getText().toString();
value = value.trim().replaceAll("[^0-9]","|").replaceAll("(\\D)\\1+","$1");
String values[] = value.trim().split("\\|");
int intValues[] = new int[values.length];
for(int i = 0; i < values.length; i ++){
intValues[i] = Integer.parseInt(values[i]);
}
//assuming you only care about the first number
int number = intValues[0];
if(number == 1){
//do something
}else if(number == 2){
//do something else
}// etc.
第一行只需获取输入中的原始文本。第二行包含两部分,第一件事是用管道“\”替换任何非数字(0-9)字符序列。在完成之后,我们返回并用单个管道修剪掉所有的管道序列。
这是你的输入:1w22ee333rr
在第一次通过之后,我们将它的格式为:1_
在第二次传递之后,我们将其作为1_
然后将值拆分并存储到字符串数组中,循环遍历该数组,解析所有数字并将它们存储到整数数组中。这将允许您访问所有正在输入的数字,有点过分,但我有时间,所以我只是给了您一个选项,以防您找到另一个应用程序。
发布于 2016-01-22 08:06:36
如果输入错误,则应将字符串从文本视图拆分,将数字部分转换为int,并使用try/catch处理
TextView textview = (TextView) findViewById(R.id.number);
String text = textview.getText();
String[] parts = text.split("\\");
int number = Integer.parseInt(parts[0]);
if (number == 1) {
// do something
} else if (number == 2) {
// do something
} else if (number > 8) {
// do something
}
发布于 2016-01-22 08:09:59
你可以试试这个:
String text = textView1.getText().toString();
int number = Integer.parseInt(text.substring(0, 1));
if(number == 1){
....
} else if(number == 2){
....
}
....
https://stackoverflow.com/questions/34950808
复制相似问题