java - if 条件中的字符串比较总是出错

标签 java if-statement comparison

这看起来是所有代码中最简单的,但它是无法编译的。我对此感到非常沮丧。请帮忙。

这就是我正在做的 - 我将一串单词分解为字符串数组。然后,我进一步拆分数组的第二个索引中的字符串并进行比较(仅当长度为 16 时)。以下是条件—— 前半部分必须全为数字且大于零。 后半部分必须等于“-default”(不区分大小写)。

由于某种原因,if 条件对于第二半比较总是 Not Acceptable 。

if (linearray[2].length() == 16) {
        String first8 = linearray[2].substring(0, 7);
        String last8 = linearray[2].substring(8, 15);
        String value = "-default";      
        try {
            int isNum = Integer.parseInt(first8);
            if (isNum > 0) {
                return "Correct";
            } else {
                return "Incorrect";
            }
        } catch (NumberFormatException e) {
            return "Incorrect";
        }
        //---------------HERE IS THE ISSUE--------------
        if (last8.equals(value)) {

        }
    }

最佳答案

    if (linearray[2].endsWith("default")) {

    }

未通过编译,因为它是无法访问的代码。您的方法在到达它之前总是会返回(或抛出异常),因为它前面的 try-catch block 总是返回一些内容,并且如果除 NumberFormatException 之外的异常是抛出,仍然无法到达此代码。

因此,出现这种情况是没有意义的。

嗯,您更改了问题中的代码,但是新的条件

    if (last8.equals(value)) {

    }

与上一个问题相同。

关于java - if 条件中的字符串比较总是出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31239125/

相关文章:

Spring MVC与接缝

java - 使用Java将数据从一个数据库导入到另一个数据库的最快方法

Java - 如果语句 A 等于 B 加减 2

Java 可折叠 if 语句

linux - 在 bash 中比较 *nix 时间戳的最佳方法

sql - 为什么 IN 条件会比 sql 中的 "="慢?

java - 如何让 JTable 停留在编辑的单元格上

java - Java中接口(interface)实现的方法调用分离,也许使用Spring

java - 如何将类 java Iterator 对象转换为 clojure 序列

c++ - 你如何使用是/否来输入你的答案 C++?