gpt4 book ai didi

java - 无法将原始类型值连接到字符串中

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:02:49 26 4
gpt4 key购买 nike

所以我对编程还很陌生,刚开始在学校上课。我们被告知要编写一个程序来打印:“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

我不知道我做错了什么,想知道是否有更简单的方法来编写这个程序。我是不是让它比实际情况更复杂?

最佳答案

+ 实际上是指 Java 中两个不同的运算符:数字加法和字符串连接。它认为您要使用哪个取决于上下文(换句话说,两个操作数的类型)。

在您每次使用 + 时,编译器都将其视为(两个数字的)加法,而不是字符串连接。 charbyteintfloat都是数值类型(对于char , 它的数值是 usually 它的 unicode codepoint )。

但是,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;

关于java - 无法将原始类型值连接到字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46207407/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com