Je dois modifier des chaînes similaires à "¼ de tasse de sucre" à "tasses de sucre", ce qui signifie remplacer tous les symboles de fraction par "".
J'ai fait référence à cela post et j'ai réussi à supprimer ¼ en utilisant cette ligne:
itemName = itemName.replaceAll("\u00BC", "");
mais comment remplacer tous les symboles de fraction possibles?
Symboles de fraction comme ¼
et ½
appartiennent à la catégorie Unicode Number, Other [No]
. Si vous êtes d'accord avec l'élimination de tous les 676 caractères de ce groupe, vous pouvez utiliser l'expression régulière suivante:
itemName = itemName.replaceAll("\\p{No}+", "");
Sinon, vous pouvez toujours les énumérer explicitement:
// As characters (requires UTF-8 source file encoding)
itemName = itemName.replaceAll("[¼½¾⅐⅑⅒⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜⅝⅞↉]+", "");
// As ranges using unicode escapes
itemName = itemName.replaceAll("[\u00BC-\u00BE\u2150-\u215E\u2189]+", "");
Vous pouvez utiliser l'expression rationnelle ci-dessous pour remplacer toutes les fractions par une chaîne vide.
str = str.replaceAll("(([\\xbc-\\xbe])?)", "")