62 votes

Suppression de tous les symboles de fraction comme "¼" et "½" d'une chaîne de caractères.

Je dois modifier des chaînes de caractères similaires à "¼ de tasse de sucre" en "tasses de sucre", ce qui signifie remplacer tous les symboles de fraction par "".

J'ai fait référence à ce poste et j'ai réussi à enlever ¼ de la population en utilisant cette ligne :

itemName = itemName.replaceAll("\u00BC", "");

mais comment puis-je remplacer tous les symboles de fraction possibles ?

96voto

Andreas Points 3334

Les symboles de fractions comme ¼ y ½ appartiennent à la catégorie Unicode Number, Other [No] . Si vous êtes d'accord pour éliminer 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]+", "");

2voto

Sumit Gulati Points 445

Vous pouvez utiliser la regex ci-dessous pour remplacer toutes les fractions par une chaîne vide.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X