java - 编写一个程序,在命令行中插入三个字符串,查看它们首字母的串联
问题描述
目标是:“编写一个程序,插入三个字符串并查看它们首字母的串联。”
Scanner in = new Scanner(System.in);
String prima = in.next();
String seconda = in.next();
String terza = in.next();
System.out.println(prima.charAt(0) + seconda.charAt(0) + terza.charAt(0));
为什么它打印数字而不是首字母?
解决方案
这是因为该charAt
方法返回一个char
原语。+
Java中原语运算符的规则char
说它被视为一个数字 - 基本上它被转换为int
然后添加。这就是 Java 的设计方式,它在 Java 语言规范的 5.6.2 节中有详细说明。
运算符仅在+
操作数之一为 a 时执行字符串连接String
。如果您按如下方式更改最后一行,您可以为您的程序实现这一点。
System.out.println("" + prima.charAt(0)+seconda.charAt(0)+terza.charAt(0));
额外""
的是 a String
,因此每个+
人都会将 a 添加String
到 a char
,在这种情况下它会连接,而不是将char
值转换为数字。