Java 字符串类型字符

Java 字符串类型字符,java,string,Java,String,我有两个简单的例子来支持我的问题。我不明白为什么(1)在工作而(2)不在工作。在我看来,我使用它们的方式是一样的 (一) 对于第二个,我得到了一个类型不匹配错误,它说:无法从char转换为string。当我试图在互联网上找到答案时,我在所有示例中都看到str声明为var类型。但它适用于第一个示例 我错过了什么 在第一个示例中,返回一个字符串。在第二秒内,您(尝试)返回一个char 由于在第一个示例中进行了字符串连接,因此表达式的结果是字符串。要将第一个字符作为字符串返回,请执行以下操作: ret

我有两个简单的例子来支持我的问题。我不明白为什么(1)在工作而(2)不在工作。在我看来,我使用它们的方式是一样的

(一)

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


我错过了什么

在第一个示例中,返回一个
字符串
。在第二秒内,您(尝试)返回一个
char


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

要将第一个字符作为字符串返回,请执行以下操作:

return str.substring(0,1);

你可以通过键入

return "" + str.charAt(0);

不知何故,这会将字符强制转换为字符串。

我假设这是java,但现在我刚刚阅读了关于“var type”的部分。。。那么你说的是哪种语言呢?这种语言肯定是Java(或者足够接近Java);我猜他对这个词的使用只是他对另一种语言的熟悉所遗留下来的。我更感兴趣的是他到底想做什么,以及他到底为什么要这么做。这确实是Java。我忘记告诉你们了。这只是我在一个更复杂的程序中遇到的问题的一个真正简单的例子。我认为这样更容易理解。所以如果我理解正确,您的意思是,尽管str声明为字符串,但charAt()表示()中的类型。那么,如果我键入str.charAt(0),我会尝试返回一个char类型,而使用str.charAt(str.length())我会尝试返回一个字符串类型?很抱歉我的无知,但我就是搞不懂这个。@user1527079 charAt返回一个char。您(试图)返回charAt返回的任何内容。。。一个字符。函数定义为返回字符串,而不是字符。在使用字符串连接的表达式中,连接的内容之一是字符串,因此连接的结果将是字符串。将字符添加到字符串会导致另一个字符串。因为您返回的是字符串连接的结果,所以您返回的是一个字符串,这是函数定义为返回的内容。@user1527079它与“类型在()”无关。。。它是一个int。方法本身返回一个值,该值的类型独立于方法参数的类型(如果有)。
return str.substring(0,1);
return "" + str.charAt(0);