字符串类型charAt

时间:2012-07-15 15:45:02

标签: java string

我有两个简单的例子来支持我的问题。我无法弄清楚为什么(1)工作,而(2)不工作。在我看来,我以同样的方式使用它们。

(1)

public String frontBack(String str) {
  if (str.length() <= 1) return str;

  String mid = str.substring(1, str.length()-1);

  // last + mid + first
  return str.charAt(str.length()-1) + mid + str.charAt(0);
}

(2)

public String front22(String str) {
  str = "test";
  return str.charAt(0);
}

对于第二个,我得到一个类型不匹配错误,上面写着:无法从char转换为字符串。当我试图在互联网上找到答案时,我看到str在所有例子中都被声明为var类型。但它适用于第一个例子。

我错过了什么?

3 个答案:

答案 0 :(得分:4)

在第一个示例中,您返回String。在第二个中,您(尝试)返回char

由于您在第一个示例中执行字符串连接,因此表达式的结果是字符串。

答案 1 :(得分:0)

将第一个字符作为字符串返回:

return str.substring(0,1);

答案 2 :(得分:0)

您可以输入

进行修复
return "" + str.charAt(0);

以某种方式强迫角色成为一个字符串。