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

2022-01-25 00:00:00 string arrays compare java

给定:

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

String input = "Up";

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

How can I verify that an input from stdin is within the directions array or not ?

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

I can make a loop and check each item with input using equal ,but I'm looking for a more elegant way.

问候,罗恩

推荐答案

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

Convert the array of valid directions to a list:

List valid = Arrays.asList(directions)

或者直接声明为:

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

然后您可以使用 contains 方法:

You can then use the contains method:

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

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

Note that this won't match a mixed case input such as "Up" so you might want to store just the uppercase values in the list and then use valid.contains(input.toUpperCase())

相关文章