新人 java 问题 求解 谢谢大家

题目:
定义char类型变量ch1,ch2,ch3,分别存储('Y','e','s')三个字符,把三个字符连接起来打印为Yes。

我是下面这样做的 但是提示int类型不能转为Sting 麻烦求解告知下为什么
public class B{

public static  void main(String []  aaa){
        char ch1 = 'y', ch2 = 'e', ch3 = 's';
  String  z = ch1 + ch2 + ch3;
  System.out.println(z); 


}

}

6个回答

在Java中,字符和字符的和的结果是int类型,就是他们对应的ASII码的和,只有字符串和字符,字符串和数字,字符串和字符串相加的结果才是字符串。所以要想把它们连接成字符串有多种办法:
例如:
String z = "" + ch1 + ch2 + ch3; //用空串和字符相加得到的结果也是字符串

或者:
String s1 = String.valueof(ch1); //将第一个字符转换成单个字符的字符串
String z = s1 + ch2 + ch3; //然后再和其它字符相加

不管是char或是byte,在进行运算时,先转化会为int类型

String z = "" + ch1 + ch2 + ch3; 这是最简单的方法了,在前面加一个空字符串,运算就算会默认为字符型了

String z = ch1.toString() + ch2.toString() + ch3.toString();

字符型不支持加号连接
楼上正解
或者直接使用三个字符串

String z = "" + ch1 + ch2 + ch3;用这种方法写

将任意一个字符类型先转换成String类型,然后再拼接,结果就是String类型

  String s = String.valueOf(ch1);
        System.out.println(s+ch2+ch3);
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问