Android将数字加在一起

时间:2013-12-17 07:02:55

标签: java android add digits

在我的android代码中..我需要将数字的数字加在一起,检查数值是否等于数字13,14,16和19 ..所以应用程序是关于数字命理,当用户输入他的名字..每个字母的值都在1-9之间,因此所有这些值都被采用并且值被加在一起......并将检查值是否为13,14,16或19 ..我在下面给出了我的代码..但是代码只给出一个数字..仅.. ..

mainactivity

long kar1 = 0;
kar1 = getKar1(et1.getText().toString();

private long getKar1(String text) {
        // TODO Auto-generated method stub
         long kar1 = 0;
            char[] karmi1 = new char[text.length()];
                   karmi1 = text.toCharArray();               
                   for(int i=0; i<text.length(); i++)
                   {
                       kar1 += value1( karmi1[i] );

                   }

                   while ((kar1!= 13)||(kar1!=14)||(kar1!=16)||(kar1!=19))
                   {
                       kar1 = findSum(kar1);
                   }

                return kar1;

    }







private int value1(char a) 

    {
        // TODO Auto-generated method stub
        switch(a)
        {
           case 'A':return 1;    
           case 'B':return 2;
           case 'C':return 3;
           case 'D':return 4;
           case 'E':return 5;
           case 'F':return 6;
           case 'G':return 7;
           case 'H':return 8;
           case 'I':return 9;
           case 'J':return 1;
           case 'K':return 2;
           case 'L':return 3;
           case 'M':return 4;
           case 'N':return 5;
           case 'O':return 6;
           case 'P':return 7;
           case 'Q':return 8;
           case 'R':return 9;
           case 'S':return 1;          
           case 'T':return 2;
           case 'U':return 3;
           case 'V':return 4;
           case 'W':return 5;
           case 'X':return 6;
           case 'Y':return 7;
           case 'Z':return 8;
           default: return 0;   
        }   
    }




private long findSum(long n) 

    {
        // TODO Auto-generated method stub

        int kar1 = 0;
        while (n != 0)
        {
         kar1 += n % 10;
         n = n / 10;
        }          

        return kar1;
    }

2 个答案:

答案 0 :(得分:2)

试试此代码

使用这段代码获取数字的总和,然后检查是否条件

   String S=et1.getText().toString();
   int i,a=0, sum=0;
   i=Integer.parseInt(S);          
   while(i!=0)
   {
       a=i%10;
       i=i/10;
       sum=sum+a;
   }
   System.out.println(sum);
   if(sum==13||sum==14||sum==16||sum==19)
   {
       System.out.println("match");
   }
   else
   {
       System.out.println("not match");
   }

答案 1 :(得分:1)

使用此方法查找字符串的总数并使用它的返回值进行比较:

int total(String str){
    String s = str.toUpperCase();
    int total = 0;
    char[] c = new char[s.length()];
    s.getChars(0, s.length(), c, 0);
    for(int i = 0; i<str.length();i++)
        total += c[i] - 'A' + 1;
    return total;
}