Java奇怪的无法访问的代码错误



我正在编写一个程序来识别字符串"xyz"是否在输入字符串中被认证。我创建一个变量,用 for 循环存储"xyz"的位置,然后将其与前后的字符数进行比较,使用 .substring() 和 .length() 创建整数。奇怪的是,代码在第一个 if 之后不会编译 - 它返回 true 或 false,说之后的任何 return 语句都是无法访问的。谁能帮我解决这个问题?

多谢!

也许是因为长度变量尚未运行,对于编译器来说,他们总是不同的?如何解决?

public static boolean xyzCenter(String str){ 
//identifies the position of "xyz" within the String.
int xyzPosition=1;
//loops through the string to save the position of the fragment in a variable.
for(int i = 0; i<str.length(); ++i){
    if(str.length()>i+2 && str.substring(i, i+3).equals("xyz")){
        xyzPosition=i;
    }
}
//ints that determine the length of what comes before "xyz", and the
length of what comes after.
int lengthBeg = str.substring(0, xyzPosition).length(); 
int lengthEnd = str.substring(xyzPosition+3, str.length()).length();
if ((lengthBeg != lengthEnd));{
    return false;
} //this compiles.
return true; //this doesn't!

if ((lengthBeg != lengthEnd)); <----- remove that semicolon

当你在if的末尾加上一个分号时,就像有一个空的if块。您的代码等效于

if ((lengthBeg != lengthEnd)) {
    // Do nothing
}
{
    return false;
}
return true; // Unreachable because we already returned false

相关内容

  • 没有找到相关文章

最新更新