In der Vergangenheit habe ich Initialize-On-Demand Holder verwendet, aber kürzlich habe ich einen knackigen Singleton mit Enum erstellt. Unten finden Sie ein Beispiel für eine String-Dienstprogrammklasse.
Erstellen Sie im Grunde eine Aufzählung, die auch das einzige Element enthält, "INSTANCE". Jetzt müssen Sie nur noch normal eine öffentliche Methode erstellen. Es ist einfach und leicht.
StringUtility.java
package jp.fumokmm;
import java.util.Objects;
public enum StringUtility {
INSTANCE;
/**
* <p>Schneidet die angegebene Zeichenfolge ab.
*Wenn die angegebene Zeichenfolge null ist, wird ein leeres Zeichen zurückgegeben.</p>
* @param str string zum trimmen
* @String nach dem Trimmen zurückgeben
*/
public String trim(String str) {
return Objects.nonNull(str) ? str.trim() : "";
}
/**
* <p>Schneidet die angegebene Zeichenfolge ab (einschließlich Leerzeichen in voller Breite).
*Wenn die angegebene Zeichenfolge null ist, wird ein leeres Zeichen zurückgegeben.</p>
* @param str string zum trimmen
* @String nach dem Trimmen zurückgeben
*/
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("Der Raum in voller Breite wird nicht gekürzt", 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("Der Raum in voller Breite wird ebenfalls beschnitten", util.trimFull(" a "), is("a"));
}
}
Übrigens im obigen Test
StringUtility util = StringUtility.INSTANCE;
Ich benutze es, nachdem ich es einmal einer Variablen zugewiesen habe
StringUtility.INSTANCE.trim(str);
Sie können es so verwenden, wie es ist. Bitte überprüfen Sie die Lesbarkeit und verwenden Sie es.
das ist alles.
Recommended Posts