我正在开发一个Android应用程序,这是一个数字命理应用程序。其中计算名称的值是:
A,J,S - 1
B,K,T - 2
C,L,U - 3
D,M,V - 4
E,N,W - 5
F,O,X - 6
G,P,Y - 7
H,Q,Z - 8
我,R - 9。
这是每个字母的值。当用户输入名称时,将计算其值并显示结果。我开发了用于计算值的代码。但现在我需要计算缺失的数字。例如,我的名字是ROSHAN
,我的值是R - 9, O - 6, S - 1, H - 8, A - 1, N - 5
。所以当我计算所有这些值9+6+1+8+1+5 = 30 = 3+ 0 = 3
时。所以我的价值是三。我为此做了代码。
我正在开发代码,用于查找丢失数字的数量,例如在我的名字中缺少的数字是2,3,4,7所以缺少的数字在4中。任何人都可以帮助我吗?我提供了迄今为止开发的代码。
Mainactivity.java
long sum70 = 0;
long sum80 = 0;
long sum90 = 0
sum70 = getsum70(et7.getText().toString());
sum80 = getSum80(et8.getText().toString());
sum90 = getSum90(et9.getText().toString());
private long getsum70(String text) {
// TODO Auto-generated method stub
long sum70 = 0;
char[] name70 = new char[text.length()];
name70 = text.toCharArray();
for(int i=0; i<text.length(); i++)
{
sum70 += value70( name70[i] );
}
while (sum70>9 )
{
sum70 = findDigitSum70(sum70);
}
return sum70;
}
private long value70(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 findDigitSum70(long n) {
// TODO Auto-generated method stub
int sum70=0;
while (n != 0)
{
sum70 += n % 10;
n = n / 10;
}
return sum70;
}
答案 0 :(得分:1)
最好将每个字符的值存储在26个元素的数组中,而不是保持开关大小写。
在这种情况下,您可以迭代该数组并将该元素添加到两个临时数组中的任何一个 - valuesFoundInNameArray和ValuesNotFoundInTheNameArray
答案 1 :(得分:0)
如果使用int数组,则可以更轻松地解决此问题。
int[] points = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
这个数组的索引是每个点。 例如,如果你得到字符'R',则将1添加到点[9]。 如果你得到字符'O',则将1添加到点[6]。
如果输入你的名字,数组中的值将是这样的。
[0,1,2,3,4,5,6,7,8,9] - 指数
{0,2,0,0,0,1,1,0,1,1} - 值
如果value为0,则该值的索引将缺少数字。 总分数将是每个[指数*值]的总和。