运算符 + 未定义参数类型双布尔值


1.public class Application 
2.{ 
3.  public static void main(String[] args) 
4.    {
5.    int a = 1;
6.    short b = 0;
7.    long c = 34;
8.  
9.    float d = 5.6f;
10.   double e = 3.65;
11. 
12.   char f = 'A';
13. 
14.   boolean g = true;
15. 
16.   byte h = 126;
17.  
18.   System.out.println(a + b + c + d + e + f + g + h);
19.  }  
20.}

日食中的第 18 行显示错误

"运算符 + 未为参数类型双布尔值定义">

我只是不想添加它们。我只想用这个输出显示它们:

10345.63.65Atrue126

在Java中,布尔值本身不被视为数字,这与Python不同,其中True为1,False为0。

如果需要这种类型的行为,可以使用int i = g ? 1 : 0;转换布尔g

编辑:我误解了你的问题 - 我看到你想连接它们,而不是添加它们。执行此操作的一个好方法是使用 StringBuilder

StringBuilder sb = new StringBuilder();
sb.append(a);
sb.append(b);
sb.append(c);
// ...etc...
String str = sb.toString();

要将多个变量连接到一个字符串,只需添加一个空字符串即可。

System.out.println("" + a + b + c + d + e + f + g + h);

这有什么意义?

在java中,向字符串添加某些内容会将此"某些内容"转换为其字符串格式。

如果不添加字符串,它只是一堆数字和"+"符号,这是基本的数学。

参见JLS:

运算符 + 和 - 称为加法运算符。

如果 + 运算符的任一操作数的类型是字符串,则 操作是字符串串联。

否则,+ 运算符的每个操作数的类型必须是 可转换为基元数值类型的类型 (§5.1.8(,或 发生编译时错误。

boolean不是数字类型,因此您会收到此编译错误。

您可以在语句末尾添加一个空字符串,结果将转换为字符串:

System.out.println(a + b + c + d + e + f + g + h + "");

相关内容

最新更新