Dans le passé, j'utilisais Initialize-On-Demand Holder, mais j'ai récemment créé un singleton net avec enum. Voici un exemple de classe utilitaire de chaîne.
Fondamentalement, créez une énumération qui a également le seul élément, ʻINSTANCE`, Il ne vous reste plus qu'à créer normalement une méthode publique. C'est facile et facile.
StringUtility.java
package jp.fumokmm;
import java.util.Objects;
public enum StringUtility {
INSTANCE;
/**
* <p>Coupe la chaîne spécifiée.
*Si la chaîne de caractères spécifiée est nulle, un caractère vide sera renvoyé.</p>
* @param str string à couper
* @return String après la coupe
*/
public String trim(String str) {
return Objects.nonNull(str) ? str.trim() : "";
}
/**
* <p>Coupe la chaîne de caractères spécifiée (y compris les espaces pleine largeur).
*Si la chaîne de caractères spécifiée est nulle, un caractère vide sera renvoyé.</p>
* @param str string à couper
* @return String après la coupe
*/
public String trimFull(String str) {
if (Objects.isNull(str)) return "";
int len = str.length();
int st = 0;
char[] val = str.toCharArray();
while (st < len && (val[st] <= ' ' || val[st] == ' ')) {
st++;
}
while (st < len && (val[len - 1] <= ' ' || val[len - 1] == ' ')) {
len--;
}
return (st > 0 || len < str.length()) ? str.substring(st, len) : str;
}
}
StringUtilityTest.java
package jp.fumokmm;
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
import org.junit.Test;
public class StringUtilityTest {
@Test
public void testTrim() {
StringUtility util = StringUtility.INSTANCE;
assertThat(util.trim(null), is(""));
assertThat(util.trim(" "), is(""));
assertThat(util.trim(" a "), is("a"));
assertThat("L'espace pleine largeur n'est pas coupé", util.trim(" a "), is(" a "));
}
@Test
public void testTrimFull() {
StringUtility util = StringUtility.INSTANCE;
assertThat(util.trimFull(null), is(""));
assertThat(util.trimFull(" "), is(""));
assertThat(util.trimFull(" a "), is("a"));
assertThat("L'espace pleine largeur est également coupé", util.trimFull(" a "), is("a"));
}
}
Au fait, dans le test ci-dessus
StringUtility util = StringUtility.INSTANCE;
Je l'utilise après l'avoir assigné à une variable une fois comme
StringUtility.INSTANCE.trim(str);
Vous pouvez l'utiliser tel quel. Veuillez vérifier la lisibilité et l'utiliser.
c'est tout.
Recommended Posts