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

JAN*_*JAN 27 java arrays string compare

鉴于:

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

String input = "Up";
Run Code Online (Sandbox Code Playgroud)

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

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

问候,罗恩

mik*_*kej 49

将有效路线数组转换为列表:

List valid = Arrays.asList(directions)
Run Code Online (Sandbox Code Playgroud)

或者直接将其声明为:

List valid = Arrays.asList("UP", "DOWN", "RIGHT", "LEFT", "up", "down", "right", "left")
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用该contains方法:

if (valid.contains(input)) {
    // is valid
} else {
    // not valid
}
Run Code Online (Sandbox Code Playgroud)

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

  • 我更喜欢在数组上使用 foreach,而不是创建新的 List 来迭代它...... (2认同)

Ran*_*Rag 5

将数组转换为List,然后使用contains方法.

List mylist = Arrays.asList(directions);
mylist.contains(input);
Run Code Online (Sandbox Code Playgroud)

contains方法返回:

如果列表包含指定的元素,则为true.