1
0
mirror of https://github.com/octoleo/plantuml.git synced 2024-11-20 04:00:53 +00:00

Merge pull request #737 from matthew16550/StringUtils.isEmpty

Change StringUtils.isEmpty() & isNotEmpty() to avoid creating new strings
This commit is contained in:
arnaudroques 2021-10-31 10:18:00 +01:00 committed by GitHub
commit 41f464fc23
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 42 additions and 7 deletions

View File

@ -5,12 +5,12 @@
* (C) Copyright 2009-2020, Arnaud Roques * (C) Copyright 2009-2020, Arnaud Roques
* *
* Project Info: http://plantuml.com * Project Info: http://plantuml.com
* *
* If you like this project or if you find it useful, you can support us at: * If you like this project or if you find it useful, you can support us at:
* *
* http://plantuml.com/patreon (only 1$ per month!) * http://plantuml.com/patreon (only 1$ per month!)
* http://plantuml.com/paypal * http://plantuml.com/paypal
* *
* This file is part of PlantUML. * This file is part of PlantUML.
* *
* PlantUML is free software; you can redistribute it and/or modify it * PlantUML is free software; you can redistribute it and/or modify it
@ -119,16 +119,22 @@ public class StringUtils {
return result; return result;
} }
public static boolean isNotEmpty(String input) { public static boolean isNotEmpty(CharSequence s) {
return input != null && trin(input).length() > 0; return !isEmpty(s);
} }
public static boolean isNotEmpty(List<? extends CharSequence> input) { public static boolean isNotEmpty(List<? extends CharSequence> input) {
return input != null && input.size() > 0; return input != null && input.size() > 0;
} }
public static boolean isEmpty(String input) { public static boolean isEmpty(CharSequence s) {
return input == null || trin(input).length() == 0; if (s == null) return true;
final int length = s.length();
if (length == 0) return true;
for (int i = 0; i < length; i++) {
if (!isSpaceOrTabOrNull(s.charAt(i))) return false;
}
return true;
} }
public static String manageHtml(String s) { public static String manageHtml(String s) {

View File

@ -0,0 +1,29 @@
package net.sourceforge.plantuml;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
class StringUtilsTest {
@ParameterizedTest
@CsvSource(nullValues = "null", value = {
" null , true ",
" '' , true ",
" ' ' , true ",
" '\0' , true ",
" '\n' , true ",
" '\r' , true ",
" '\t' , true ",
" 'x' , false ",
" ' x ' , false ",
})
void test_isEmpty_isNotEmpty(String s, boolean empty) {
assertThat(StringUtils.isEmpty(s))
.isEqualTo(empty);
assertThat(StringUtils.isNotEmpty(s))
.isNotEqualTo(empty);
}
}