web-dev-qa-db-fra.com

Suppression de tous les symboles de fraction comme «¼» et «½» d'une chaîne

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?

62
Michelle

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]+", "");
97
Andreas

Vous pouvez utiliser l'expression rationnelle ci-dessous pour remplacer toutes les fractions par une chaîne vide.

str = str.replaceAll("(([\\xbc-\\xbe])?)", "")
2
Sumit Gulati