0

抱歉,我敢肯定这是一个愚蠢的问题,但是......

请任何人向我解释为什么会这样:

public class java {
public static void main(String[] args) {
    byte zero = 0;
    short one = 1;
    int three = 3;
    long one2 = 1;
    float onepointnought = 1.0f;
    double onedotnone = 1.0;
    char letterh = 'H';
            char letterw = 'w';
            char letterr = 'r';
    char letterd = 'd';
            boolean bool = true;
    String output = letterh + three + one + one2 + zero + " " + letterw + zero + letterr + one + letterd + " " + (onepointnought+onedotnone) + " " + bool;
    System.out.println(output);
} }

正在输出:

77 w0r1d 2.0 true

我期待它说“H3ll0 w0r1d 2.0 true”

它来自http://www.learnjavaonline.org/上的交互式在线 Java 教程

谢谢!

尼尔。

4

1 回答 1

1

在这句话中

String output = letterh + three + one + one2 + zero + " " + letterw + zero + letterr + one + letterd + " " + (onepointnought+onedotnone) + " " + bool;

包含letterh'H' 其 ASCII 值为 72 并且加法three + one + one2 + zero为 5,因为这些是非字符串变量,因此结果中显示 (72 + 5) 77,您必须将three, one, one2,转换zero为 sting 变量

于 2013-07-22T11:34:02.857 回答