为什么在Java中可以连接Char和String



这是我尝试过的;

public String frontBack(String str) {
      char begin = str.charAt(0);
      char end = str.charAt(str.length()-1);
      return begin+str.substring(1,str.length()-1)+end;
}

我以为它会失败,因为开始和结束是字符,但它没有。这怎么可能呢?有人能解释一下吗?谢谢!

Java的'+'操作符也用作连接操作符。它可以连接原语和对象,并返回一个字符串作为其结果。

下面的解释假设您熟悉Java的包装器类。如果你对它们不熟悉,请读一读。

Java的'+'操作符将语句中使用的所有基本数据类型转换为其等效的Wrapper类,并在这些实例上调用toString()方法,并使用该结果,该结果是表达式中的字符串。

示例:在Java中,像System.out.println( 3 + " Four " + 'C' );这样的语句最终创建了一个内容为"3 Four C"的字符串。

在上面的语句中,3是一个原始int变量。"4"是一个String对象,而"C"是一个基本字符变量。

在'+' concat操作中,3被转换为其相应的Wrapper类-> Integer。然后调用toString()方法。输出为字符串3,即"3"" Four "已经是一个字符串,不需要进一步处理。'C'被转换为字符包装类,toString()方法返回字符串"C"。

最后,这三个加起来就得到" 3four C"

总结:

  1. 如果在'+'操作符中使用了原语,则将其转换为其Wrapper类,然后对其调用toString()方法,结果将用于追加。
  2. 如果使用的不是String对象,则调用其toString()方法,并使用其结果进行追加。
  3. 如果调用String,那么,没有太多要做的事情,字符串本身被用于追加。

相关内容

  • 没有找到相关文章

最新更新