索引编制不是错误,而是索引+索引=错误

时间:2019-03-24 17:54:46

标签: java

package hello2;

import java.util.Scanner;

public class Today_java {
    public static void main(String[] args) {

        Scanner broken = new Scanner(System.in);
        String input = broken.nextLine();
        char[] charArray = input.toCharArray();

        System.out.println(charArray[0]);
        System.out.println(charArray[1]);
        System.out.println(charArray[2]);

        System.out.printf("%d",charArray[0] + charArray[1] + charArray[2]);
    }
}

运行此代码打印1,2,3可以,但是1 + 2 + 3是错误

ex)输入123 >> 1/2/3> 150

真的我找不到错误和语法错误

救救我...:(

3 个答案:

答案 0 :(得分:1)

当您打印3个字符并使用“ +”运算符时,它不能像String那样用作串联运算符,因为每个字符都有来自ASCII表的ASCII值:

enter image description here

所以1 + 2 + 3等于49 + 50 + 51 = 150。

要打印3个字符,请使用

System.out.printf("%c%c%c", charArray[0] , charArray[1] , charArray[2]);

%c用于格式化char的地方。

答案 1 :(得分:0)

问题出在字符上的添加操作

 import java.util.Scanner;

 public class Today {

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

         Scanner broken = new Scanner(System.in);
          String input = broken.nextLine();
          char[] charArray = input.toCharArray();

          System.out.println(charArray[0]);
          System.out.println(charArray[1]);
          System.out.println(charArray[2]);

          System.out.printf("%d",Character.getNumericValue(charArray[0]) + Character.getNumericValue(charArray[1]) + Character.getNumericValue(charArray[2]));
    }

}

答案 2 :(得分:0)

System.out.printf("%d",Character.getNumericValue(charArray[0]) +Character.getNumericValue(charArray[1]) + Character.getNumericValue(charArray[2]));