gpt4 book ai didi

java - 在JAVA中将String(包含字符和整数)转换为整数并计算总和

转载 作者:搜寻专家 更新时间:2023-11-01 01:42:05 27 4
gpt4 key购买 nike

  • 此方法计算长度为 10 的字符串中所有数字的总和。字符串的格式必须为“12345?789x”或“12?4567890”,其中“?”可以位于任何位置且值为 0,“x”(如果存在)位于字符串的末尾且等于 10。
  • 总和应按如下方式计算:对于“11432?789x”,总和 = (10*1)+(9*1)+(8*4)+(7*3)+(6*2)+(5*0)+(4*7) +(3*8)+(2*9)+(1*10) = 164。
  • 此代码非常适用于以“x”结尾的数字,但对于那些不以“x”结尾的数字,它会返回 sum 的值为 0。例如,对于“111?111111”,它不会返回 48,而是返回 0。
  • 我无法找出错误。请帮忙。

    public static int sum(String input,int l){
    int sum=0;
    int temp=0;
    char a;
    for(int i=0;i<l;i++){
    a=input.charAt(i);
    if(a=='x'){
    temp=10;
    }
    else if(a=='?'){
    temp=0;
    }
    else{
    temp = Character.getNumericValue(input.charAt(i));
    }


    sum = temp*(10-i)+sum;
    }
    return sum;
    }

最佳答案

我写了这个测试,它是绿色的:

@Test
public void removeme() {
String input = "111?111111";
int sum = 0;
int temp = 0;
for(int i = 0; i < input.length(); i++){
char a = input.charAt(i);
if(a == 'x'){
temp = 10;
} else if(a == '?'){
temp = 0;
} else {
temp = Character.getNumericValue(input.charAt(i));
}

sum = temp * (10 - i) + sum;
}
assertThat(sum , is(48));
}

我建议您像我一样删除参数 l 并只使用 input.length()。

关于java - 在JAVA中将String(包含字符和整数)转换为整数并计算总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31455015/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com