有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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>;一百五十

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

帮帮我…:(


共 (3) 个答案

  1. # 1 楼答案

    问题在于对字符的添加操作

     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. # 2 楼答案

    当您打印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

  3. # 3 楼答案

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