Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java xyzMiddle—;我不知道';我不认为我';我遗漏了什么,那么这个错误意味着什么呢? 给定一个字符串,XYZ是否出现在字符串的中间?为了定义中间,我们将说“xyz”左右的字符数最多相差一个_Java_String_Compiler Errors_Boolean - Fatal编程技术网

Java xyzMiddle—;我不知道';我不认为我';我遗漏了什么,那么这个错误意味着什么呢? 给定一个字符串,XYZ是否出现在字符串的中间?为了定义中间,我们将说“xyz”左右的字符数最多相差一个

Java xyzMiddle—;我不知道';我不认为我';我遗漏了什么,那么这个错误意味着什么呢? 给定一个字符串,XYZ是否出现在字符串的中间?为了定义中间,我们将说“xyz”左右的字符数最多相差一个,java,string,compiler-errors,boolean,Java,String,Compiler Errors,Boolean,以下是我对这个练习的看法: public boolean xyzMiddle(String str){ int indexXYZ=str.indexOf(“xyz”); int-toLeft=indexXYZ; int toRight=str.length()-(indexXYZ+3); int val=toRight-toLeft; if(Math.abs(val)public boolean xyzMiddle(String str){ int indexXYZ=str.indexOf(“

以下是我对这个练习的看法:

public boolean xyzMiddle(String str){
int indexXYZ=str.indexOf(“xyz”);
int-toLeft=indexXYZ;
int toRight=str.length()-(indexXYZ+3);
int val=toRight-toLeft;
if(Math.abs(val)
public boolean xyzMiddle(String str){
int indexXYZ=str.indexOf(“xyz”);
int-toLeft=indexXYZ;
int toRight=str.length()-(indexXYZ+3);
int val=toRight-toLeft;

if(Math.abs(val)只需删除关键字
else
,即可消除编译错误。原因是,您需要返回一个
布尔值,该值由于在代码中使用
else
而受到限制。顺便说一句,您的逻辑是正确的。下面给出了更正的代码和示例测试:

public class Main {
    public static void main(String args[]) {
        System.out.println(xyzMiddle("abcxyzdef"));
        System.out.println(xyzMiddle("abcdxyzefg"));
        System.out.println(xyzMiddle("abcxyzdefg"));
        System.out.println(xyzMiddle("abcdexyzfgh"));
        System.out.println(xyzMiddle("abcxyzdefgh"));
    }

    public static boolean xyzMiddle(String str) {
        int indexXYZ = str.indexOf("xyz");
        int toLeft = indexXYZ;
        int toRight = str.length() - (indexXYZ + 3);
        int val = toRight - toLeft;
        if (Math.abs(val) <= 1)
            return true;
        return false;
    }
}
如果要保留
else
,可以按如下方式编写函数:

public static boolean xyzMiddle(String str) {
    boolean result;
    int indexXYZ = str.indexOf("xyz");
    int toLeft = indexXYZ;
    int toRight = str.length() - (indexXYZ + 3);
    int val = toRight - toLeft;
    if (Math.abs(val) <= 1)
        result = true;
    else
        result = false;
    return result;
}
publicstaticboolearnxyzmiddle(stringstr){
布尔结果;
int indexXYZ=str.indexOf(“xyz”);
int-toLeft=indexXYZ;
int toRight=str.length()-(indexXYZ+3);
int val=toRight-toLeft;
if(数学绝对值(val)
true
true
true
false
false
public static boolean xyzMiddle(String str) {
    boolean result;
    int indexXYZ = str.indexOf("xyz");
    int toLeft = indexXYZ;
    int toRight = str.length() - (indexXYZ + 3);
    int val = toRight - toLeft;
    if (Math.abs(val) <= 1)
        result = true;
    else
        result = false;
    return result;
}