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
真的我找不到错误和语法错误
救救我...:(
答案 0 :(得分:1)
当您打印3个字符并使用“ +”运算符时,它不能像String
那样用作串联运算符,因为每个字符都有来自ASCII表的ASCII值:
所以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]));