2013-12-17 14 views
0

在我的android代碼..我需要添加一個數字的數字在一起,並檢查值是否等於數字13,14,16和19 ..所以該應用程序是關於命理當用戶輸入他的名字時,每個字母的值都在1-9之間,因此所有這些值都被採集並且值被加在一起...並且將檢查值是13,14,16還是19 .. I我給我下面的代碼...但代碼..only給一個單一的數字..Android的數字加在一起的數字

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; 
    } 
+3

試着用調試器跟蹤你的代碼,你會立即看到它出錯的地方。 – Egor

回答

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"); 
    } 
+0

感謝Vaibhav ..我= 12345;我需要去哪裏...? – roshanpeter

+1

是的,檢查我編輯的答案 –

+0

謝謝Vaibhav讓我檢查... – roshanpeter

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; 
} 
相關問題