为什么我不能向新字符串添加字符?

may*_*aya 0 java string char

代码:

String st = "abc";
String sl = st.charAt(0)+st.charAt(st.length()-1)); 
Run Code Online (Sandbox Code Playgroud)

由于某种原因第二行是错误的,我不知道为什么

Lou*_*man 6

书上是错的,Eclipse 是对的。

在 Java 中,您可以编写"abc" + whatever, or whatever + "abc",它会连接字符串 - 因为一侧是String

但在st.charAt(0)+st.charAt(st.length()-1)),双方都不是String。他们俩都是chars 所以 Java 不会给你支持String

相反,Java 实际上会在技术上为您提供一个int. 以下是 Java 语言规范中的详细信息,它准确地描述了 Java 的工作原理:

  1. JLS 4.2指定将其char视为数字类型。
  2. JLS 15.18.2指定了+对数字类型的值的作用。
  3. 特别是,它指定对它们所做的第一件事是二进制数字提升,它将两个chars 转换为intJLS 5.6.2。然后将它们相加,结果仍然是一个int.

为了得到你想要发生的事情,最简单的解决方案可能是写

String sl = st.charAt(0) + "" + st.charAt(st.length() - 1)); 
Run Code Online (Sandbox Code Playgroud)