Java 方法、字符串、字符有问题

Java 方法、字符串、字符有问题,java,string,char,Java,String,Char,我目前正试图让我的代码在hello world中返回字母“d”,但不确定代码有什么问题: public class StringTest{ public static void main(String [] args){ String test= "Hello World"; world(test); } public static String world(String original){ int x= origin

我目前正试图让我的代码在hello world中返回字母“d”,但不确定代码有什么问题:

 public class StringTest{
    public static void main(String [] args){
        String test= "Hello World";
        world(test);
    }

    public static String world(String original){
        int x= original.charAt(original.length()-1);
        return x;
    }
}

在Java中,
String.charAt(int-index)
返回一个字符,而int不能隐式转换为char

您可以将返回的字符转换为字符串中的字符:

public class StringTest{
    public static void main(String [] args){
        String test= "Hello World";
        world(test);
    }

    public static String world(String original)
    {
       return Character.toString(original.charAt(original.length()-1));
    }
还有一种更简单的方法:

创建空字符串,并用您的字符连接。 自动将字符转换为字符串,因为 我们正在向字符串中添加一个元素,该元素本身 支持以下字符元素的字符串:


String.charAt
返回一个
char
(),因此您有两个选项:

要返回
char
,需要更改方法的返回类型:

public static char world(String original){
    return original.charAt(original.length()-1);
}
或者您想返回一个
字符串
,您需要使用
String.valueOf
char
更改为
String
,例如()


我对你现在想做的事有点困惑

文章中的代码以字符串形式返回“d”。 你是否编辑了这篇文章以便它提供工作版本? 这是正确的:

public static String world(String original){
    return Character.toString(original.charAt(original.length()-1)) ;
}

public static void main(String[] args) {
    String test= "Hello World";
    System.out.println(world(test));
}

stringworld
更改为
charworld
,您可以使用
返回original.charAt(original.length()-1)将方法世界的返回类型从字符串更改为字符。编写代码时是否使用IntelliJ或Eclipse之类的IDE?您的错误是代码linter通过IDEGUI查找和报告的经典示例……您不需要linter,因为此代码甚至不会编译。该方法声明为返回
字符串
,因此编译器不允许返回
int
。返回original.charAt(original.length()-1)。toString()Dude@YCFúL在评论中写下了大部分答案。。。。。。你不认为他应该为此得到表扬吗?你没有写答案,你写了评论。你写评论不会获得任何声誉。你有积分,已经对你的评论投了4票。我写了一篇关于使用IDE的评论,@YCF_L在评论中写下了答案。@RannLifshitz没有人说相反的话。他写了一篇评论。如果他想要名声,他会写一个答案。他有23K的名声,所以我想他知道这一点。否决完美答案是没有用的。在工作关系/学术界有一个基本概念,当你使用或基于他人的工作时,你会给予他们信任。这是一件体面的事情。在我看来,当有详细内容的评论时,否决一个答案似乎是合法的。你想取消否决票吗?在回答问题时,首先要给予表扬。至少要在评论中提到@YCF_L,他写了你在这里发布的部分内容作为回答。@RannLifshitz好吧,编辑我的帖子,我希望现在没有冲突,很抱歉给您带来不便,伙计。@Héctormauelmartinezdurán不知道您说的
和int不能隐式转换为char是什么意思,您的意思是
和int/char不能隐式转换为String
?@Bentaye int x=original.charAt(original.length()-1);是的,有人用答案编辑了这个问题,我把它编辑回原来的形式。
public static String world(String original){
    return String.valueOf(original.charAt(original.length()-1));
}
public static String world(String original){
    return Character.toString(original.charAt(original.length()-1)) ;
}

public static void main(String[] args) {
    String test= "Hello World";
    System.out.println(world(test));
}