在学习流编程时,我遇到了一个问题。我有一个列表,需要按照字符串的长度进行排序,其中所有包含大写字符的字符串都要匹配,如果没有这样的字符串,则按字母顺序排序。
List<String> phones = new ArrayList<>();
Collections.addAll(phones, "iPhone X", "Nokia 9", "Huawei Nexus 6P",
"Samsung Galaxy S8", "LG G6", "Xiaomi MI6", "Sony Xperia Z5",
"Asus Zenfone 3", "Meizu Pro 6", "Heizu Pro 6",
"pixel 2");
phones.stream().filter(s -> s.matches("A-Z")).sorted(Comparator.comparingInt(String::length)).forEach(System.out::println);
我尝试使用matches,但似乎出了问题,因为没有任何输出。我该怎么解决?