Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.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 尽管存在不相等的条件,字符串仍将添加到ArrayList中_Java_Arraylist - Fatal编程技术网

Java 尽管存在不相等的条件,字符串仍将添加到ArrayList中

Java 尽管存在不相等的条件,字符串仍将添加到ArrayList中,java,arraylist,Java,Arraylist,我正在将我的direcList拆分为两个子列表firstDirec和seconddirec时,发现了一个特定的字符串新方向 然后,通过不将特定字符串添加到新的ArrayListstimeListFirst和timeListSecond,从列表中筛选出它们。对于firstDirec,一切正常,并且元素没有添加到timeListFirst,但是我在这个位置遇到了seconddirec列表的问题: if (!(mergeLine.equals(otherDirection)) 因为在这个位置,mer

我正在将我的
direcList
拆分为两个子列表
firstDirec
seconddirec
时,发现了一个特定的字符串
新方向

然后,通过不将特定字符串添加到新的
ArrayList
s
timeListFirst和timeListSecond
,从列表中筛选出它们。对于
firstDirec
,一切正常,并且元素没有添加到
timeListFirst
,但是我在这个位置遇到了
seconddirec
列表的问题:

if (!(mergeLine.equals(otherDirection))
因为在这个位置,
mergeLine
等于
“Ravensbusch”
otherDirection
。尽管如此,该字符串仍被添加到
timeListSecond
。有人能解释一下我的错误吗

合并行值:

        for (String keyLine : direcList) {
            if (keyLine.startsWith("New direction")) {
                int index = direcList.indexOf(keyLine);
                // direcArray.remove(index);
                List<String> firstDirec = direcList.subList(0, index);
                List<String> secondtDirec = direcList.subList(index,
                        direcList.size() - 1); // This part wih New
                                                // Direction.

                ArrayList<String> timeListFirst = new ArrayList<String>();
                for (String mergeLine : firstDirec) {
                    if (!(mergeLine.equals(direction))
                            && !(mergeLine.equals(route))
                            && !(mergeLine.equals(day))) {
                        timeListFirst.add(mergeLine);

                    }
                }

                ArrayList<String> timeListSecond = new ArrayList<String>();
                for (String mergeLine : secondtDirec) {
                    if (!(mergeLine.equals(otherDirection))
                            && !(mergeLine.equals(route))
                            && !(mergeLine.equals(day))
                            && !(mergeLine.equals("New direction"))) {
                        timeListSecond.add(mergeLine);

                    }
                }

其他方向值:

        for (String keyLine : direcList) {
            if (keyLine.startsWith("New direction")) {
                int index = direcList.indexOf(keyLine);
                // direcArray.remove(index);
                List<String> firstDirec = direcList.subList(0, index);
                List<String> secondtDirec = direcList.subList(index,
                        direcList.size() - 1); // This part wih New
                                                // Direction.

                ArrayList<String> timeListFirst = new ArrayList<String>();
                for (String mergeLine : firstDirec) {
                    if (!(mergeLine.equals(direction))
                            && !(mergeLine.equals(route))
                            && !(mergeLine.equals(day))) {
                        timeListFirst.add(mergeLine);

                    }
                }

                ArrayList<String> timeListSecond = new ArrayList<String>();
                for (String mergeLine : secondtDirec) {
                    if (!(mergeLine.equals(otherDirection))
                            && !(mergeLine.equals(route))
                            && !(mergeLine.equals(day))
                            && !(mergeLine.equals("New direction"))) {
                        timeListSecond.add(mergeLine);

                    }
                }

for(字符串键行:direcList){
if(keyLine.startsWith(“新方向”)){
int index=direcList.indexOf(keyLine);
//direcArray.remove(索引);
List firstDirec=direcList.subList(0,索引);
List SecondDisrec=direcList.subList(索引,
direcList.size()-1);//此部件为新部件
//方向。
ArrayList timeListFirst=新的ArrayList();
for(字符串合并行:firstDirec){
如果(!(合并线等于(方向))
&&!(合并线。等于(路线))
&&!(合并行等于(天))){
timeListFirst.add(合并行);
}
}
ArrayList timeListSecond=新的ArrayList();
用于(字符串合并行:secondtDirec){
如果(!(合并线等于(其他方向))
&&!(合并线。等于(路线))
&&!(合并行。等于(天))
&&!(mergeLine.equals(“新方向”)){
timeListSecond.add(合并行);
}
}


它看起来像
其他方向的值在它的末尾有一个空格,因此它们不相等,因为里面有一个
,整个表达式是
真的
它看起来像
其他方向的值在它的末尾有一个空格,因此它们不相等,因为有一个
在那里,整个表达式是
true

因此,如果现在点击f6……。它是否将进入timeListSecond行。添加(mergeLine);?尝试在timeListSecond之前打印mergeLine+“-”+其他方向。添加(mergeLine);调试器可能正在使用某些缓存值。是的,请逐步使用调试器,并确保调试器实际调用的是timeListSecond。直接在该点之后添加(mergeLine)。如果mergeLine和otherDirection实际具有相同的值,则.add()方法不应该为那个特定的值调用。@Ouney:当我点击F6时,它转到
timeListSecond.add(合并行)
打印我在上面的评论中提到的值。我们将看到:)我已经打印了它们,我得到了
合并行值:Ravensbusch-其他方向值:Ravensbusch
所以,如果现在点击f6…….它是否将进入timeListSecond行。添加(mergeLine);?尝试在timeListSecond之前打印mergeLine+“-”+其他方向。添加(mergeLine);调试器可能正在使用某个缓存值。是的,请逐步使用调试器,并确保它实际上在该点之后直接调用timeListSecond.add(mergeLine)。如果mergeLine和otherDirection实际上具有相同的值,则.add()方法不应为该特定值调用。@Ouney:当我点击F6时,它将转到
timeListSecond.add(mergeLine);
打印我在上述注释中提到的值。我们将看到:)我已经打印了它们,我得到了
mergeLine值:Ravensbusch-otherDirection值:Ravensbusch
比我快了几秒钟…这是正确的答案。做得好,也许可以编辑你的答案,这样你可以指定
otherDirection
的值有空格。(例如,“Ravenbusch”有空格)但是当我在if语句之前的for循环中执行以下操作时,没有任何更改
mergeLine=mergeLine.trim();
@这本书的空格在
其他方向上,而不是在
合并行上。请稍等几秒钟……这是正确的答案。干得好,也许可以编辑你的答案,这样你就可以指定
其他方向上的
有空格。(例如,“Ravenbusch”有空格)但是当我在if语句之前的for循环中执行以下操作时,没有任何更改
mergeLine=mergeLine.trim();
@该书的空格位于
其他方向,而不是
mergeLine