【问题标题】:How do you get the numerical value from a string of digits?如何从一串数字中获取数值?
【发布时间】:2026-02-10 18:50:01
【问题描述】:

我需要添加数字字符串的某些部分。

例如喜欢。

036000291453

我想在奇数位置添加数字,比如

0+6+0+2+1+5 等于 14。

我尝试了 charAt(0)+charAt(2) 等,但它返回这些字符的数字而不是添加它们。感谢您的帮助。

【问题讨论】:

标签: java arrays string numbers switch-statement


【解决方案1】:

使用charAt得到char(ASCII)值,然后用charAt(i) - '0'转换成对应的int值。 '0' 会变成0'1' 会变成1,等等

请注意,这也会转换不是数字的字符而不会给您任何错误,因此Character.getNumericValue(charAt(i)) 应该是更安全的选择。

【讨论】:

  • @Winterone:如果可行,请单击绿色检查按钮接受他的回答。
  • @Winterone 没问题 :) 顺便说一句,还可以按照 Voldemort 的建议查看 Character.getNumericValue
【解决方案2】:
  String s = "036000291453";

  int total = 0;
  for(int i=0; i<s.length(); i+=2) {
    total = total + Character.getNumericValue(s.charAt(i));
  }

  System.out.println(total);

【讨论】:

  • 这只会将 ASCII 值转换为 int。 OP想要字符代表的数值。
  • 对不起,我看错了,添加时重写了将每个转换为数值的答案。
【解决方案3】:

可以使用 Character.digit() 方法

public static void main(String[] args) {
    String s = "036000291453";
    int value = Character.digit(s.charAt(1), 10); 
    System.out.println(value);
}

【讨论】:

    【解决方案4】:

    下面的代码循环遍历字符串中的任何数字,并在末尾打印出奇数的总和

    String number = "036000291453";
    int sum = 0;
    
    for (int i = 0; i < number.length(); i += 2) {
        sum += Character.getNumericValue(number.charAt(i));
    }
    
    System.out.println("The sum of odd integers in this number is: " + sum);
    

    【讨论】:

      【解决方案5】:

      我尝试了 charAt(0)+charAt(2) 等,但它返回那些数字 字符而不是添加它们。

      Character.getNumericValue(string.charAt(0));
      

      【讨论】: