gpt4 book ai didi

JAVA比较两个字符串不起作用

转载 作者:行者123 更新时间:2023-12-01 22:23:01 24 4
gpt4 key购买 nike

下面是我正在处理的代码片段:

String direction = s.readLine();
System.out.println(direction);
if (direction.equals("up") != true && direction.equals("down") != true &&
direction.equals("left") != true && direction.equals("right") &&
direction.equals(null) != true) {
System.out.println("Invalid Solution file");
System.exit(0);
}

它应该做的是从文本文件中读取一行(使用 BufferedReader),然后如果该行不是有效方向或空白,那么它应该打印“Invalid Solution "并退出。

问题是无论方向字符串是什么,if 语句仍然运行。我输入了一个 println 来检查方向是否被正确读取,但它看起来绝对没问题。那么为什么代码没有按预期工作?

最佳答案

您的部分问题是可读性。解决这个问题,你的问题就解决了 90%:

private static List<String> DIRECTIONS = Arrays.asList("up", "down", "left", "right");

然后

if (!DIRECTIONS.contains(direction)) {
System.out.println("Invalid Solution file");
System.exit(0);
}

另外 10% 是如何检查 null,即 direction == null,但是如果您使用这段代码则不需要,因为 contains(null) 将方便地返回 false

关于JAVA比较两个字符串不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38859097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com