java - 如何验证字符串数组是否包含某个字符串?

标签 java arrays string compare

给定:

String[] directions = {"UP","DOWN","RIGHT","LEFT","up","down","right","left"};

String input = "Up";

如何验证来自 stdin 的输入是否在 directions 数组内?

我可以创建一个循环并使用 input 使用 equal 检查每个项目,但我正在寻找一种更优雅的方式。

问候,罗恩

最佳答案

将有效方向数组转换为列表:

List valid = Arrays.asList(directions)

或者直接声明为:

List valid = Arrays.asList("UP", "DOWN", "RIGHT", "LEFT", "up", "down", "right", "left")

然后您可以使用 contains 方法:

if (valid.contains(input)) {
    // is valid
} else {
    // not valid
}

请注意,这不会匹配混合大小写输入,例如“Up”,因此您可能只想在列表中存储大写值,然后使用 valid.contains(input.toUpperCase())

关于java - 如何验证字符串数组是否包含某个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9105358/

相关文章:

java - 是否可以声明 String[][] 类型的全局数组?

java - 如何在二维矩阵中找到成本最低的路径

java - 为什么扫描仪不在 try-catch while 循环 java 中要求其他输入

c - 从C中的字符串中获取子字符串

java - 尝试修复线程 "JavaFX Application Thread"java.lang.NullPointerException 中的 java 异常

string - Boyer Moore 寻找小 key

c# - 如何将两个不同的字符串合并为一个字符串?

python - 如何在 Python 中有效地进行字节对编码二元组计数和替换?

java - 在 Storm TrackedTopology 单元测试中运行 Trident 拓扑

java - ArrayIndexOutOfBounds 错误