为什么java中输出的结果会是1234?

因为Java语言中println函数只对字符串敏感,所以字符'1'和'2'之间的加号被认为是'1'和'2'相加,两个字符相加就是其ascii码相加,'1'的ascii码是49,'2'的ascii码是50,所以结果是99.后面加空字符串和数字3,4的加号,因为有空字符串,所以都被认为是连接字符串的符号,后面所有的数字都自动隐式转成字...
为什么java中输出的结果会是1234?
因为Java语言中println函数只对字符串敏感,所以字符'1'和'2'之间的加号被认为是'1'和'2'相加,两个字符相加就是其ascii码相加,'1'的ascii码是49,'2'的ascii码是50,所以结果是99.后面加空字符串和数字3,4的加号,因为有空字符串,所以都被认为是连接字符串的符号,后面所有的数字都自动隐式转成字符串,所以连接起来就是9934字符串
public class H {
public static void main(String []args) {
System.out.println('1'+'2'+""+3+4);
}
}

如果你把空字符串放到字符'1'前面,那么后面所有的加号都被认为是连接字符串的符号,后面所有的数字和字符都自动隐式转成字符串,输出就是1234字符串
public class H {
public static void main(String []args) {
System.out.println(""+'1'+'2'+3+4);
}
}

2024-01-10
mengvlog 阅读 32 次 更新于 2025-08-11 09:34:04 我来答关注问题0
  • 因为Java语言中println函数只对字符串敏感,所以字符'1'和'2'之间的加号被认为是'1'和'2'相加,两个字符相加就是其ascii码相加,'1'的ascii码是49,'2'的ascii码是50,所以结果是99.后面加空字符串和数字3,4的加号,因为有空字符串,所以都被认为是连接字符串的符号,后面所有的数字都自动隐式转成字...

  •  WMYUOM JAVA中 为什么这三种输出结果是true,false,true?

    Integer是一个对象,==比较的是引用地址,与 int 比较,jvm会将Integer转化为int, 所以结果为true。但Integer之间比较时,如果是用new创建的对象,一定返回false。Integer 大于127 是需要新建 new 对象。Integer c = 128 ;会编译为 Integer c = Integer.valueOf(128); 是用new创建的对象。Intege...

  •  宸辰游艺策划 Java中int s=scanner.nextInt();我如果输入编号为01,输出为什么是1,而不是01。

    Java中的nextInt方法主要用于读取整型数据,它会将输入转换为整数形式。然而,当我们输入01时,输出结果却是1,而不是01。这是因为nextInt方法会将输入的字符串转换为整数类型,而整数类型只保留数字本身的数值意义,不保留前导零。如果需要保留输入中的前导零,例如在处理编号等场景中,就需要使用字符串...

  • anonymous (java)为什么输出结果都是一样的数值

    原因是你这个里面只有一个Data对象,你每次给他在for循环里面赋值的时候,都在改变Data对象的属性val的值,所以,最后输出了102。你要是想输出不同的值,那么list里面add的应该是不同的Data对象。即把你的Data data = new Data()写在第一个for循环里面,这样每次list里面add的都是不同的Data对象。就...

  •  yfq1981 java为什么输出结果是-112虽然说byet的最大值是-128到127

    byte的值范围是-128~127 byte a;a=128;这个时候呢 a打印的结果就是 -128 在这个时候 再看 12*12 = 144 =128+16=-128+16=-112(看清了,兄弟)

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部