Java 字符串的写字符方法

Java 字符串的写字符方法,java,split,Java,Split,`在if语句中有问题。它一直给我 错误:不可比较的类型:java.lang.String和int。 我该怎么办 字符串str=helloworld;//在我的程序的主要方法 public static String charAt(int index) { String result = ""; int lol; String[] list = str.split(""); for(int i = 0; i < list.length; i++) {

`在if语句中有问题。它一直给我 错误:不可比较的类型:java.lang.String和int。 我该怎么办

字符串str=helloworld;//在我的程序的主要方法

public static String charAt(int index) {
    String result = "";
    int lol;
    String[] list = str.split("");
    for(int i = 0; i < list.length; i++) {
      if(list[i] == index) {
        result += list[i];
      }
    }
    return result;
}

您有一个非常清楚的错误消息

if(list[i] == index)
你不能这样做,因为两者是不可比的。列表[i]是一个字符串,索引是一个int

也许你想要


ifi==index您似乎有一条非常明确的错误消息

if(list[i] == index)
你不能这样做,因为两者是不可比的。列表[i]是一个字符串,索引是一个int

也许你想要

ifi==index看起来根本不需要for循环:只需返回list[index]作为结果

String[] list = str.split("");
if (list.length > index) {
    return list[index];
}
throw new IndexOutOfBoundsException();
您根本不需要for循环:只需返回list[index]作为结果

String[] list = str.split("");
if (list.length > index) {
    return list[index];
}
throw new IndexOutOfBoundsException();

编译器在告诉你到底是什么错了编译器在告诉你到底是什么错了我没有看到任何关于当前错误消息的解释,没有对操作代码进行任何更正,只是给出了工作代码。呸ᴜʀᴇsʜᴀᴛᴛᴀ 如果OP需要保留任何代码,我会解释他做错了什么。我的意思是,没有必要修复比较,因为比较一开始就不需要存在。我没有看到对当前错误消息的任何解释,也没有对操作代码进行任何更正,只是给出了工作代码。呸ᴜʀᴇsʜᴀᴛᴛᴀ 如果OP需要保留任何代码,我会解释他做错了什么。我的意思是,没有必要修正这种比较,因为这种比较一开始就不需要存在。@Aurora_钛这并不能解决问题,它只是隐藏了它。真正的问题是,在完全不需要任何迭代的情况下使用循环。考虑一下:您将调用result+=list[i];最多一次-即当我达到指数时,除非指数太高。假设指数是40。如果0==40,如果1==40,如果2==40等等,那么检查循环没有意义,因为你知道40等于40,没有其他数字。正确的解决方案需要去掉循环。我做了一些更改。告诉我你对这个公共静态字符索引{char result='';char[]charlist=str.toCharArray;forint i=0;i