Конечно - просто итерация по всем направлениям:
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;
}
Или с помощью 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();
}
Что такое производительность этого потока и DIRECTIONS.contains (input.split ("") [0])? потому что мне нужно использовать его в большом цикле – Jerry06
@ Jerry06: я бы ожидал, что поток будет быстрее - но на самом деле для проблем с производительностью вы должны иметь конкретные требования, а затем протестировать их. –