Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android edittext获取前两个输入值';总和_Java_Android_Android Edittext - Fatal编程技术网

Java android edittext获取前两个输入值';总和

Java android edittext获取前两个输入值';总和,java,android,android-edittext,Java,Android,Android Edittext,我有一个edittext,例如,我把它放在12345中。我想检查前两个数字的和是否大于0,然后做些什么。我不知道如何检查前两个元素的和 if(pirinfouserid.getText().toString().indexOf(2)>0) Toast.makeText(getApplicationContext(), "ok", Toast.LENGTH_SHORT).show(); else Toast.makeTe

我有一个edittext,例如,我把它放在12345中。我想检查前两个数字的和是否大于0,然后做些什么。我不知道如何检查前两个元素的和

if(pirinfouserid.getText().toString().indexOf(2)>0)
        Toast.makeText(getApplicationContext(), "ok",
                Toast.LENGTH_SHORT).show();
    else
        Toast.makeText(getApplicationContext(), "wrong",
                Toast.LENGTH_SHORT).show();
如果有人知道解决方法,请帮助我


谢谢

首先从用户输入的字符串中获取前两个字符:

String firstTwoDigit = s.substring(0, 
                  Math.min(pirinfouserid.getText().toString().length(), 1));
现在使用以下公式获得两位数的和:

使用这种方法,您将数字和逻辑与其他代码分离,稍后可以对这些代码进行参数化,以查找更多数字的和


在使用
String.substring
Integer.parseInt
之前,还要添加
null
length
检查字符串

请在线查找相关注释

String input = pirinifouserid.getText().toString();
if(input.length()>2){
    try{
        int num1= Integer.parseInt(input.indexOf(0)); // Handle NumberFormatException
        int num2= Integer.parseInt(input.indexOf(1));// Handle NumberFormatException
        int sum = num1 + nm2;
        if (sum > 0){
            Toast.makeText(getApplicationContext(), "ok",
                Toast.LENGTH_SHORT).show();
        }else{
            Toast.makeText(getApplicationContext(), "wrong",
                Toast.LENGTH_SHORT).show();
        }
    }catch (NumberFormatException e){ 
        // DO what you think is correct. Probably show an error message 
    }
}

您在获取editText的文本或将其转换为数字时有问题吗?我不知道如何将前两个元素@theface求和。我的代码错误。我不知道解决方案请澄清您的问题。您实际想要做什么。例如,在“12345”中,您想要求和“1”+“2”?检查Brovoker的答案。如果您想要添加一个
IndexOutOfBoundsException
处理
substring
方法的行,它将起作用。@Brovoker谢谢,但例如,我输入了1234567898765等,以及如何求最后7个元素的和?如果输入为“1”(一位数)。IndexOf方法返回找到的元素的索引,而不是给定索引处的元素,我想您应该使用CharacterSorry来纠正错误。我已经做了更改。谢谢,但是我在这一行有syntacs错误int num2=Integer.parseInt(input.indexOf(1))@赫佩斯
String firstTwoDigit = s.substring(0, 
                  Math.min(pirinfouserid.getText().toString().length(), 1));
// Parse String to Integer 
int sum = 0;
int digits = Integer.parseInt(firstTwoDigit);
while (digits != 0) {
 int lastdigit = digits % 10;
 sum += lastdigit;
 digits /= 10;
}
if(sum>0){
  // do your work
}else{
  // do your work
}
String input = pirinifouserid.getText().toString();
if(input.length()>2){
    try{
        int num1= Integer.parseInt(input.indexOf(0)); // Handle NumberFormatException
        int num2= Integer.parseInt(input.indexOf(1));// Handle NumberFormatException
        int sum = num1 + nm2;
        if (sum > 0){
            Toast.makeText(getApplicationContext(), "ok",
                Toast.LENGTH_SHORT).show();
        }else{
            Toast.makeText(getApplicationContext(), "wrong",
                Toast.LENGTH_SHORT).show();
        }
    }catch (NumberFormatException e){ 
        // DO what you think is correct. Probably show an error message 
    }
}