在我的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;
}
答案 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;
}