当前位置: 首页 > 知识库问答 >
问题:

使用charAt对字符串的数字求和

时宾实
2023-03-14
public static int Sum(int a) {

    String row = String.valueOf(a);
    int counter = 0;
    int sum = 0;

    while (counter<row.length()){
        int b = row.charAt(counter);
        sum = sum + b;
        counter++;      
    }

    return sum; 
}

投入:8576产出:218预期产出:8+5+7+6=26

已修正:

public static int Sum(int a) {

    String row = String.valueOf(a);
    int counter = 0;
    int sum = 0;

    while (counter<row.length()){
        String b = String.valueOf(row.charAt(counter));
        int c = Integer.parseInt(b);
        sum = sum + c;
        counter++;

        }
    return sum;
}

共有1个答案

祝宏放
2023-03-14

问题是b是数字的Unicode值,而不是数字值。例如,数字1的Unicode值为49。

为了总结数字值,您需要处理这一点。您可以使用Tariq在回答中提到的方法,将字符转换为字符串并将其解析为int,或者使用基于上面提到的Unicode值的数学。

更迂腐地说,如果字符可以用UTF-16中的单个代码单元表示(数字可以),则该数字的UTF-16序列化的值。对于数字(以及所有127个ASCII值),这与数字的Unicode代码点相同。

 类似资料:
  • 问题内容: 我想在很大的字符串的特定位置找到字符。但是我无法使用方法,因为范围超出了int的范围。有什么调整吗? 问题答案: 在Java中,字符串由字符数组支持。数组的理论大小受的最大值限制,因此不可能有超过2 31 -1个字符的字符串开头。 要解决此问题,您可以创建自己的使用多个数组或字符串作为存储的字符串类。

  • 问题内容: 我有一个使用UTF-8字符串输出文本表的程序,并且我需要测量字符串使用的等宽字符单元数,以便正确对齐它。如果可能的话,我想使用标准功能。 问题答案: 来自Unix / Linux的UTF-8和Unicode常见问题解答 : 可以使用C以可移植的方式在C中计算字符数。只要已选择适当的语言环境,此方法就可以与其他支持的编码一样适用于UTF-8。计算UTF-8字符串中字符数的一种硬连接技术是

  • 问题内容: 我想遍历字符串中的每个字符并将字符串中的每个字符作为字符串传递给另一个函数。 要么 最终结果必须是字符串。那么有什么想法会更快或更有效吗? 问题答案: 像往常一样:没关系,但是如果您坚持花时间进行微优化,或者如果您真的想针对非常特殊的用例进行优化,请尝试以下操作:

  • 问题内容: 这是以前有关Java中的String初始化的一些问题的后续问题。 在用Java进行了一些小测试之后,我面临以下问题: 为什么我可以执行此语句 当str2一个String对象初始化为,但我不能调用方法toString()上str2?那么Java如何将空字符串对象和字符串文字串联起来? 顺便说一句,我还尝试将一个初始化为null和字符串文字的Integer连接起来,”a_literal_s

  • 所以我不想用ascii表来做这件事。我想让用户输入一个字母数字(例如A3),然后取字母表(A)并在字符串ABC中找到它,这样它会给我一个介于1-9之间的数字,而不是ascii值。这将使我以后更容易放入2d阵列。 然而当我使用system . out . println(ABC . charat(row));它会说它是越界异常,因为它使用了ascii值。我怎样才能让它不

  • 如果第一个字符串在字典上大于第二个字符串,它应该返回1,如果等于返回0,则返回-1。在某些情况下正确地返回1,-1,0,但对于这个str1和str2,返回结果与所需的输出相反。