En entreprise, il est devenu nécessaire de mettre en œuvre une conversion pleine largeur → demi-largeur ou demi-largeur → pleine largeur des chaînes de caractères. Une note du résultat de l'enquête. Il est utilisé pour absorber les fluctuations de notation lors du traitement de comparaison.
--Cible de conversion: caractères alphanumériques, symboles
Normalizer
Méthode 1. Comment utiliser java.text.Normalizer
qui est disponible dans Java 6 ou version ultérieure.
Par souci, comme il n'est pas destiné à une conversion pleine largeur ⇔ demi-largeur, une conversion supplémentaire peut se produire pendant le processus de normalisation.
ICU4J ICU - International Components for Unicode Méthode 2. Utilisez une bibliothèque externe. Utilisez la dernière version au moment de la rédaction, ICU 4J 63.1.
Transliterator fullToHalf = Transliterator.getInstance("Fullwidth-Halfwidth");
Transliterator halftoFull = Transliterator.getInstance("Halfwidth-Fullwidth");
String target =
"Tous à moitié ""\" \"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 :Tous à moitié """ "Agapa Agapa ABabABab123123 "" ()()[][];;!!??##//--・ ┣ ① ⑪ ㌀ Co., Ltd. ㌔¼ ⑴
NFC :Tous à moitié """ "Agapa Agapa ABabABab123123 "" ()()[][];;!!??##//--・ ┣ ① ⑪ ㌀ Co., Ltd. ㌔¼ ⑴
NFD :Tous à moitié """ "Agapa Agapa ABabABab123123 "" ()()[][];;!!??##//--・ ┣ ① ⑪ ㌀ Co., Ltd. ㌔¼ ⑴
NFKC :Tous à moitié """ "Agapa Agapa Agapa ABabABab123123 ""()()[][];;!!??##//--・ ┣111 appartement(Stock)Km 1⁄4(1)
NFKD :Tous à moitié """ "Agapa Agapa Agapa ABabABab123123 ""()()[][];;!!??##//--・ ┣111 appartement(Stock)Km 1⁄4(1)
ICU4J H:Tous à moitié """ "Agapa Agapa ABabABab123123 ""()()[][];;!!??##//--・ ┣①⑪㌀ Co., Ltd.㌔¼⑴
ICU4J F:Tous les demi "" "Agapa Agapa Agapa ABabABab123123" "" () () [] [] ;;! !! ?? ?? ## // -- ・ ┣ ① ⑪ ㌀ Co., Ltd. ㌔¼ ⑴
Cette fois, j'ai décidé d'utiliser ICU4J pour passer de la pleine largeur à la demi-largeur. Si vous pouvez affiner l'entrée à l'avance, je pense que Normalizer est plus facile et meilleur.
Recommended Posts