Kişisel olarak ben !str.isBlank(), başkalarının daha önce önerdiği gibi (veya str -> !str.isBlank()bir Dayanak olarak), str.trim()yukarıda bahsedilen yaklaşımın daha modern ve verimli bir versiyonunu tercih ediyor olsam da , boşları "boşluk" olarak str.strip()kabul ederek :
if (str != null && str.strip().length() > 0) {...}
Örneğin Predicate olarak, akışlarla kullanım için, örneğin bir birim testinde:
@Test
public void anyNonEmptyStrippedTest() {
String[] strings = null;
Predicate<String> isNonEmptyStripped = str -> str != null && str.strip().length() > 0;
assertTrue(Optional.ofNullable(strings).map(arr -> Stream.of(arr).noneMatch(isNonEmptyStripped)).orElse(true));
strings = new String[] { null, "", " ", "\\n", "\\t", "\\r" };
assertTrue(Optional.ofNullable(strings).map(arr -> Stream.of(arr).anyMatch(isNonEmptyStripped)).orElse(true));
strings = new String[] { null, "", " ", "\\n", "\\t", "\\r", "test" };
}