如果值更多,则Java For循环重复

时间:2015-01-20 09:06:12

标签: java string char

我正在从一个字符串中取字符并且它的值仍然被添加我得到一个特定的值..假设我得到的值是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;

3 个答案:

答案 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;:将forbreak逃脱,然后从while按表达式逃脱;
2)如果&#34;文本&#34;中没有足够的字符:将完成for并通过while表达式再次启动它。直到1)

答案 1 :(得分:1)

如果我的答案错了,请原谅我。 1)我采用了一个名为&#34;变量&#34;的字符串变量。并将其转换为名为&#34; character_array&#34;(数组名称)的字符数组。

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;