gpt4 book ai didi

java - java中使用原语进行字符串连接

转载 作者:行者123 更新时间:2023-12-03 02:54:50 26 4
gpt4 key购买 nike

我最近刚刚开始学习 Java 基础知识,并正在测试通过连接原始变量来初始化字符串变量。

public class Main{
public static void main(String[] args){
byte lbyte = 3;
short lshort = 1;
int lint = 1;
long llong = 0;
float lfloat = 2.0f;
double ldouble = lfloat;
char lchar = 'H';
boolean lbool = true;
String lstring = " w0r1d ";
String lOutput = lchar+lbyte+lshort+lint+llong+lstring+ldouble+' '+lbool;
System.out.println(lOutput);
}
}

在这段代码中,我的目标是创建一个输出的字符串:

H3110 w0r1d 2.0 正确

但是,当我运行它时,输出是:77 w0r1d 2.0 true

意外的结果是77,其他都还好。即使我假设数字变量会被添加,总共也只有 5 个。变量 lchar 显然也被“吸收”到数字中。

lchar 中的 77 从何而来,H 发生了什么?

编辑:目标是在串联中使用尽可能多的原始变量。

编辑2:感谢所有有用的答案。

最佳答案

'H' 的 ASCII/Unicode 值为 72。加法是从左到右处理的,因此 lchar + lbyte'H' + (字节)3,等于72 + 3

如果操作数之一是字符串,则只能从 + 获得字符串结果。直到您最终连接 lstring 时才会发生这种情况,这解释了为什么所有数字(和 char)变量相加得到 77。 lstring 被一一连接,每个都转换为字符串,因为所有这些 + 的左侧操作数此时都是字符串。

一个快速解决方法是从 "" 开始强制一切都用字符串完成。

String lOutput = ""+lchar+lbyte+lshort+lint+llong+lstring+ldouble+' '+lbool;

关于java - java中使用原语进行字符串连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30339537/

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