遇到方法,字符串,字符有问题

时间:2018-04-07 15:19:23

标签: 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= original.charAt(original.length()-1);
        return x;
    }
}

3 个答案:

答案 0 :(得分:5)

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

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

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并使用char进行conacatenate。    自动将此转换为String,因为    我们正在向String本身添加一个元素    支持char:

这些元素的字符串
    public static String world(String original)
    {
       return "" + original.charAt(original.length()-1); 
    }

}

答案 1 :(得分:3)

String.charAt会返回charsee API here),因此您有2个选项:

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

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

或者您想要返回String,并且需要将char更改为String,例如使用String.valueOfsee API here

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

答案 2 :(得分: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));
}