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