【问题标题】:Adding numbers together from a String将字符串中的数字相加
【发布时间】:2016-04-21 17:25:17
【问题描述】:

我希望能够分隔两个数字的字符串,然后将它们相加,但我不断得到每个字符的 int 值。如果我输入“55”作为字符串,我希望答案是 10。我该怎么做?

package org.eclipse.wb.swt;

import java.util.*;

public class ISBN13 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

      Scanner input = new Scanner(System.in);

      System.out.println("enter a string");
      String numbers = input.nextLine();  //String would be 55

      int num1=numbers.charAt(0); //5

      int num2=numbers.charAt(1); //5

      System.out.println(num1+num2); //the answer should be 10
    }
}

【问题讨论】:

标签: java string char character add


【解决方案1】:

您正在获取字符的 ascii 值;您可以使用Character.digit(char, int) 来获取数值。类似的,

String numbers = "55";
int num1 = Character.digit(numbers.charAt(0), 10);
int num2 = Character.digit(numbers.charAt(1), 10);
System.out.println(num1 + num2);

输出是(按要求)

10

【讨论】:

    【解决方案2】:
    int x = Character.getNumericValue(element.charAt(0));
    

    【讨论】:

      【解决方案3】:

      您可以使用string.toCharArray() 方法,然后将它们添加到 for 循环中

      import java.util.Scanner;
      
      public class MyClass {
          public static void main(String[] args) {
              Scanner scan = null;
              try {
                  scan = new Scanner(System.in);
                  String line = scan.nextLine();
                  char[] charArray = line.toCharArray();
                  int sum = 0;
                  for (char character : charArray) {
                      sum += Integer.parseInt(String.valueOf(character));
                  }
                  System.out.println(sum);
              } finally {
                  scan.close();
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-29
        • 2014-05-15
        • 1970-01-01
        • 2019-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多