检查字符串是否在数组中以startwith开头

Vie*_*iet 2 java string

String[] directions = {"UP","DOWN","RIGHT","LEFT"};
String input = "DOWN 123 test";
Run Code Online (Sandbox Code Playgroud)

有没有办法检查输入字符串是否在方向上一个值开始而不使用拆分输入值?

Jon*_*eet 7

当然 - 只需遍历所有方向:

private static final String[] DIRECTIONS = {"UP","DOWN","RIGHT","LEFT"};

public static String getDirectionPrefix(String input) {
    for (String direction : DIRECTIONS) {
        if (input.startsWith(direction)) {
            return direction;
        }
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

或者使用Java 8的流:

private static final List<String> DIRECTIONS = Arrays.asList("UP","DOWN","RIGHT","LEFT");

public static Optional<String> getDirectionPrefix(String input) {
    return DIRECTIONS.stream().filter(d -> input.startsWith(d)).findFirst();
}
Run Code Online (Sandbox Code Playgroud)