所以我对编程很新,我刚开始在学校上课。我们被告知制作一个打印的程序:" H3110 wor1d 2.0 true"只使用变量类型char,int,byte,float和boolean。这就是我能想到的。
public class Homework3 {
public static void main(String[] args) {
char ab = 'H';
int cd = 3110;
char ef = 'w' ;
byte gh = 0;
char ig = 'r';
char l = '1';
char d = 'd';
float mn = 2.0f;
char op = ' ' ;
boolean qr = false;
String x = (ab + cd + ef + gh + ig + l + d + mn + op + qr);
System.out.println(x);
}
}
但是,当我尝试运行它时,我不断收到错误消息。
String x = (ab + cd + ef + gh + ig + l + d + mn + op + qr);
^
first type: float
second type: boolean
1 error
我不知道我做错了什么,并且想知道是否有更简单的方法来编写这个程序。我是否比现在更复杂?
答案 0 :(得分:4)
+
实际上是指Java中的两个不同的运算符:数字加法和字符串连接。它认为你想要使用它取决于上下文(换句话说,两个操作数的类型)。
在+
的每个用法中,编译器将此视为添加(两个数字),而不是字符串连接。 char
,byte
,int
和float
都是数字类型(对于char
,其数值为usually其unicode {{3 }})。
但是,boolean
不是数字类型,因此在那时失败。
您可以从""
开始强制执行字符串连接:
String x = "" + ab + cd + ef + gh + ig + l + d + mn + op + qr; // "H3110w0r1d2.0 false"
或者首先将第一个值转换为String
:
String y = String.valueOf(ab) + cd + ef + gh + ig + l + d + mn + op + qr;