我需要验证多个字符串并确保每个字符串都已填充或没有。
我正在接收数据,所以我无法控制它,并且未填充的可能是 null 或空字符串(只有空格的字符串被视为已填充)。
我显然可以写这样的东西:
String s1 = "A";
String s2 = "B";
String s3 = "C";
boolean valid = (
(s1 == null || s1.isEmpty()) &&
(s2 == null || s2.isEmpty()) &&
(s3 == null || s3.isEmpty())
) || (
(s1 != null && !s1.isEmpty()) &&
(s2 != null && !s2.isEmpty()) &&
(s3 != null && !s3.isEmpty())
);
Run Code Online (Sandbox Code Playgroud)
但这变得很难阅读,我认为最终我需要检查七个字符串。
所以我开始研究流,我可以做
boolean anyPopulated = Stream.of(s1, s2, s3).anyMatch(s -> s != null && !s.isEmpty());
boolean allPopulated = Stream.of(s1, s2, s3).allMatch(s -> …Run Code Online (Sandbox Code Playgroud)