In der Wirtschaft wurde es notwendig, die Konvertierung von Zeichenketten in voller Breite → halber Breite oder halber Breite → voller Breite zu implementieren. Ein Memo des Untersuchungsergebnisses. Es wird verwendet, um Notationsschwankungen während der Vergleichsverarbeitung zu absorbieren.
--Umwandlungsziel: alphanumerische Zeichen, Symbole
Normalizer Methode 1. Verwendung von "java.text.Normalizer", das in Java 6 oder höher verfügbar ist. Da dies nicht für die Konvertierung mit voller Breite und halber Breite vorgesehen ist, kann während des Normalisierungsprozesses eine zusätzliche Konvertierung auftreten.
ICU4J ICU - International Components for Unicode Methode 2. Verwenden Sie eine externe Bibliothek. Verwenden Sie zum Zeitpunkt des Schreibens die neueste Version, ICU 4J 63.1.
Transliterator fullToHalf = Transliterator.getInstance("Fullwidth-Halfwidth");
Transliterator halftoFull = Transliterator.getInstance("Halfwidth-Fullwidth");
String target =
"Alle Hälfte ""\" \"Agapa Agapa ABabABab123123 ()()[][];;!!??##//--㌀ ┣ ① ⑪ ㌀ Co., Ltd. ㌔¼ ⑴";
System.out.println("target :" + target);
System.out.println("NFC :" + Normalizer.normalize(target, Normalizer.Form.NFC));
System.out.println("NFD :" + Normalizer.normalize(target, Normalizer.Form.NFD));
System.out.println("NFKC :" + Normalizer.normalize(target, Normalizer.Form.NFKC));
System.out.println("NFKD :" + Normalizer.normalize(target, Normalizer.Form.NFKD));
System.out.println("ICU4J H:" + fullToHalf.transliterate(target));
System.out.println("ICU4J F:" + halftoFull.transliterate(target));
target :Alle Hälfte """ "Agapa Agapa ABabABab123123 ()()[][];;!!??##//--㌀ ┣ ① ⑪ ㌀ Co., Ltd. ㌔¼ ⑴
NFC :Alle Hälfte """ "Agapa Agapa ABabABab123123 ()()[][];;!!??##//--㌀ ┣ ① ⑪ ㌀ Co., Ltd. ㌔¼ ⑴
NFD :Alle Hälfte """ "Agapa Agapa ABabABab123123 ()()[][];;!!??##//--㌀ ┣ ① ⑪ ㌀ Co., Ltd. ㌔¼ ⑴
NFKC :Alle Hälfte """ "Agapa Agapa Agapa ABabABab123123()()[][];;!!??##//--・ ┣111 Wohnung(Lager)Km 1⁄4(1)
NFKD :Alle Hälfte """ "Agapa Agapa Agapa ABabABab123123()()[][];;!!??##//--・ ┣111 Wohnung(Lager)Km 1⁄4(1)
ICU4J H:Alle Hälfte """ "Agapa Agapa ABabABab123123()()[][];;!!??##//--㌀ ┣ ① ⑪ ㌀ Co., Ltd. ㌔¼ ⑴
ICU4J F:Alle Hälfte Agapa Agapa Agapa ABabABab123123 () () [] [] ;;! !! ?? ?? ## //, ・ ┣ ① ① ㌀ Co., Ltd. ㌔¼ ⑴
Dieses Mal habe ich mich für ICU4J entschieden, um von voller Breite zu halber Breite zu konvertieren. Wenn Sie die Eingabe im Voraus eingrenzen können, ist der Normalizer meiner Meinung nach einfacher und besser.
Recommended Posts