编程非常新,在小练习中我看不出我错在哪里

-1 java primitive boolean

所以也许很多人都知道我们需要做的关于学习原语的练习,我们需要打印h3110 w0r1d 2.0 true

所以我的是这个;

public class main {
public static void main(String[] args) {
   // H3110 w0r1d 2.0 true
    byte bir = 0;
    short iki = 31;
    int uc = 10;
    long dort = 1;
    float bes = 2.0f;
    char yedi = 'H';
    char sekiz = 'w';
    char dokuz = 'd';
    char ekstra = ' ';
    char ramk = 'r';
    boolean on = true;

    String son = (yedi + iki + uc + ekstra + sekiz + bir + ramk + dort + dokuz + ekstra + bes + ekstra + on );
    System.out.println(son);







}
Run Code Online (Sandbox Code Playgroud)

}

他们的解决方案是这样的;

public class Main {
public static void main(String[] args) {
    byte zero = 0;
    short a = 3;
    int b = 1;
    char d = ' ';
    float e = 2.0f;
    boolean f = true;
    String output = "H" + a + b + b + zero + d + "w" + zero + "r" + b + "d" + d + e + d + f;
    System.out.println(output);
}
Run Code Online (Sandbox Code Playgroud)

}

所以我给了我布尔和浮点错误,但是我不知道那些原语有什么问题.

我得到的错误就是这个

Main.java:16: error: bad operand types for binary operator '+'
    String son = (yedi + iki + uc + ekstra + sekiz + bir + ramk + dort + dokuz + ekstra + bes + ekstra + on );
                                                                                                       ^
Run Code Online (Sandbox Code Playgroud)

first type:float second type:boolean 1 error

alf*_*sin 5

这条线:

String son = (yedi + iki + uc ...
Run Code Online (Sandbox Code Playgroud)

将不同类型的多个参数(其中没有一个是字符串)的串联分配到字符串中.

"解决方案"是通过将字符串连接到其他参数来开始赋值:

String output = "H" + a + b + ...
                 ^
Run Code Online (Sandbox Code Playgroud)

这将把其余的 - 投射到弦上.

您可以通过在开头添加空字符串来对第一个示例执行相同的操作:

String son = ("" + yedi + iki + uc ...
              ^
Run Code Online (Sandbox Code Playgroud)

附注:我完全同意TJ Crowder上面的评论......