有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法将字符串作为字符串数组返回

我正在为hackerrank问题编写一个解决方案,Encircular,并且已经编写了一个完整的解决方案,但是我得到了一个错误,因为我需要在一个字符串数组的方法上返回一个字符串,我似乎不知道如何修复它。我在网上搜索,尝试了一些不同的东西,但没有运气。我已经在下面粘贴了我的代码

public class Encircular {
    static String[] find(String[] commands) {
        int x = 0;
        int y = 0;
        boolean goUp = false;
        for (int i = 0; i < commands.length(); i++) {
            switch (commands.charAt(i)) {
                case 'G' :
                    if (goUp) {
                        y++;
                    } else {
                        x++;
                    }
                    break;
                case 'L' :
                    goUp = true;
                    break;
                case 'R' :
                    goUp = false;
                    break;
            }
        }
        if (x == 0 && y == 0) {
            return "YES";
        }
        return "NO";

    }

    public static void main(String[] args) {
        System.out.println(doesCircleExist("GLGLG"));
        System.out.println(doesCircleExist("GRGL"));
    }

我得到的错误是:

      location: variable commands of type String[]
Solution.java:37: error: incompatible types: String cannot be converted to String[]
            return "YES";
                   ^
Solution.java:39: error: incompatible types: String cannot be converted to String[]
        return "NO";

我尝试将字符串存储为数组,然后像这样返回数组,但没有成功

ArrayList<String> list = new ArrayList<String>();
list.add("YES");
list.add("NO");


 if (x == 0 && y == 0) {
        return list.get[0];
    }
    return list.get[1];

此外,我收到了这个错误,我不确定这意味着什么:

/usr/lib/jvm/java-8-sun/bin/javac -encoding UTF-8  -classpath ':*:/usr/share/java/*' Solution.java 1> compile.err 2>&1

共 (1) 个答案

  1. # 1 楼答案

    方法的返回类型是字符串数组。如果你把它改成

    static String find(String[] commands)
    

    然后它将允许您返回单个字符串

    编辑:

    因为您无法更改方法,所以只需按照@raluca的建议创建两个不同的数组即可。一个只包含yes,一个只包含no,并返回其中一个