在方法、字符串、字符方面遇到问题

问题描述 投票:0回答:3

我目前正在尝试让我的代码返回 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 char
3个回答
5
投票

在Java中,

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

您可以做的是将返回的字符转换为

charAt
中的
String

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));
    }
}

还有一个更简单的方法:

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

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

3
投票

String.charAt
返回一个
char
请参阅此处的 API),因此您有 2 个选择:

要么您想返回

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

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

或者您想返回

String
并且您需要将
char
更改为
String
,例如使用
String.valueOf
请参阅此处的 API

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

0
投票

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

您帖子中的代码返回“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));
}
© www.soinside.com 2019 - 2024. All rights reserved.