首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.equals()问题

.equals()问题
EN

Stack Overflow用户
提问于 2015-02-06 18:27:32
回答 2查看 110关注 0票数 0

下面是我正在使用的代码的一小部分,以及我正在使用的文本文件的语法。(我相当肯定两者都过于复杂,但我不太清楚如何简化它们。)

代码语言:javascript
复制
        while((line = bufferedReader.readLine()) != null) 
        {

            if(line.split("@@")[0].equals(lineNumber))
            {
                numberOfLines = Integer.parseInt(line.split("@@")[1]);
                spaceSkip = 1;
                worked = 0;
            }

            if(spaceSkip == 0)
            {
                if(numberOfLines > 0)
                {
                    System.out.println(line);
                    numberOfLines--;
                }
            }

            spaceSkip = 0;
        }

文本文件的格式是: 1@@2@@3@@0文本位于其下方,可以跨越多行。

3和0在这里不起作用。该程序的目的是搜索所选的数字,并将其与第一个数字相匹配,在这种情况下为1。第二个数字是要读取的行数。在代码中,我有"spaceSkip“,这样它就不会读取索引行。

撇开解释不说,我遇到的问题是,line.split("@@")[0].equals(lineNumber)似乎读错了。我同时将两者打印到屏幕上,两者等于1,但它仍然返回我所包含的错误消息。("worked = 0;“是防止错误触发的原因。)我确信这是我在这里犯的一个愚蠢而简单的错误,但我仍然无法弄清楚。提前谢谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-06 18:37:46

当比较没有返回您认为应该返回的内容时,请检查类型是否与您认为的类型相同。

String#split返回一个String数组。对于给定的输入,该数组的第一个元素将是"1“。如果lineNumber不是字符串,比如说int,那么等于仍然有效(基本int被自动装箱到java.lang.Integer,后者是java.lang.Object的子类,它是相等方法作为参数的类型),但是比较("1".equals(1))总是返回false。JavaScript可以将字符串和int等同起来("1" == 1返回true),但Java不是。

最简单的修复方法是通过调用传入lineNumber的String#valueOf将lineNumber转换为字符串。最好是将lineNumber转换为字符串,而不是尝试将拆分的输出转换为整数,因为Integer解析可能会在错误的输入上失败,我宁愿避免必须管理这种可能性。

分割调用的剪切-n粘贴是不幸的,这主要是因为冗余,您应该将拆分一次变成一个局部变量,例如:

代码语言:javascript
复制
String[] parts = line.split("@@");
if (parts[0].equals("1")) {
    numberOfLines = Integer.parseInt(parts[1]);
    ...
票数 2
EN

Stack Overflow用户

发布于 2015-02-06 18:37:02

如果没有看到变量的初始化,很难判断,但是在这个if语句中,您可能会将字符串与Integer进行比较。您可能需要尝试将第二个参数转换为字符串,如下所示。

代码语言:javascript
复制
if(line.split("@@")[0].equals(String.valueOf(lineNumber)))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28372369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档