我正在从一个字符串中取字符并且它的值仍然被添加我得到一个特定的值..假设我得到的值是50 ..我需要从字符串中取每个字符并添加其值
例如我需要获得的值是10
和字母a = 1,b = 2,c-3;
的值,字符串为abca,因此其总值为1 + 2 + 3 + 1 = 7
所以10没有达到所以我需要从开始添加一次agin像abca 7 + 1 + 2.所以在b的位置我们得到了10个值..所以结果是2。
我知道如何把这个价值换一次,但第二次计算得到第三次我没有得到的时间,如果有人可以提供帮助......请帮忙
到目前为止我完成的代码..
long currentValueFN = 0;
long value = 0;
char[] currentFN = new char[text.length()];
currentFN = text.toCharArray();
Long l = Long.parseLong(String.valueOf(currentAge));
for(int i=0; i<text.length(); i++)
{
currentValueFN += valueLetters( currentFN[i] );
if(currentValueFN >= l)
{
value = valueLetters( currentFN[i] );
}
}
return value;
答案 0 :(得分:1)
long currentValueFN = 0;
long value = 0;
char[] currentFN = new char[text.length()];
currentFN = text.toCharArray();
Long l = Long.parseLong(String.valueOf(currentAge));
while(currentValueFN < l ) //check if current value is enough
{
for(int i=0; i<text.length(); i++)
{
currentValueFN += valueLetters( currentFN[i] );
if(currentValueFN >= l)
{
value = valueLetters( currentFN[i] );
break;
}
}
}
return value;
1)如果&#34;文字中有足够的字符&#34;:将for
从break
逃脱,然后从while
按表达式逃脱;
2)如果&#34;文本&#34;中没有足够的字符:将完成for
并通过while
表达式再次启动它。直到1)
答案 1 :(得分:1)
2)然后我将字符数组元素转换为等效的ascii代码,并将其存储在名为&#34; value_array&#34;(数组名称)的整数数组中。
3)然后我检查了给定值小于addvalue的条件。
public class Stack {
public static void main(String args[])
{
long addedvalue=0;
long requiredvalue=600;
String variable="ravi";
char characterarray[]=new char[variable.length()];
for(int i=0;i<variable.length();i++)
{
characterarray[i]=variable.charAt(i);
System.out.println(characterarray[i]);
}
int valuearray[]=new int[variable.length()];
for(int j=0;j<variable.length();j++)
{
valuearray[j]=(int)(variable.charAt(j));
System.out.println(valuearray[j]);
}
while(addedvalue<=requiredvalue)
{
for(int j=0;j<variable.length();j++)
{
valuearray[j]=(int)(variable.charAt(j));
if(addedvalue>=requiredvalue)
break;
addedvalue=addedvalue+valuearray[j];
System.out.println(j);
}
}
}
}
答案 2 :(得分:-1)
这应该对你有帮助。
currentValueFN =0;
a=0;
while(currentValueFN !=l){
a=valueLetters( currentFN[i] );
currentValueFN +=a;
if(currentValueFN >= l)
{
value = a;
break;
}
}
return value;