如何验证字符串数组是否包含某个字符串?
鉴于:
String[] directions = {"UP","DOWN","RIGHT","LEFT","up","down","right","left"};
String input = "Up";
如何验证 来自 的输入是否在数组中?stdin
directions
我可以做一个循环,并使用相等的方式检查每个项目,但我正在寻找一种更优雅的方式。input
问候,罗恩
鉴于:
String[] directions = {"UP","DOWN","RIGHT","LEFT","up","down","right","left"};
String input = "Up";
如何验证 来自 的输入是否在数组中?stdin
directions
我可以做一个循环,并使用相等的方式检查每个项目,但我正在寻找一种更优雅的方式。input
问候,罗恩
将有效方向的数组转换为列表:
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())
将数组转换为 List,然后使用 contains 方法。
List mylist = Arrays.asList(directions);
mylist.contains(input);
contains 方法返回:
如果列表包含指定的元素,则为 true。