Le concept de minuscule / majuscule est légèrement différent en anglais et certaines langues RTL comme arabe / persan, je veux vérifier si un personnage persan / arabe est une lettre grosse ou arabe.
J'ai essayé la méthode de Char.Islower, mais Il ne fonctionne pas pour les langages rtl. P>
Veuillez consulter le code suivant SNIPPET: P>
string mainString = "Ù Ø±ØØ¨Ø§"; char[] arr = mainString.ToCharArray(); bool Lcase= char.IsLower(arr[3]);
5 Réponses :
Essayez ceci qui devrait inverser LTR à RTL:
string mainString = "Ù Ø±ØØ¨Ø§"; char[] arr = mainString.Reverse().ToArray(); bool Lcase= char.IsLower(arr[3]);
Ces langues ont également des caractères majuscules ou minuscules, mais le concept de minuscule / majuscule est légèrement différent.
@Mitram Java utilise Unicode (comme votre système d'exploitation, gestionnaire de fenêtres, polices, etc.). Vous devez adopter la même approche de l'arabe comme unicode.org, peut-être TR # 53 . (Désolé si la référence ne résout pas le problème, mais unicode.org est l'endroit.)
En arabe, il n'y a rien appelé majuscules ou minuscules, ce n'est qu'un cas, je pense que la méthode d'Islower utilise une expression régulière, quelque chose comme le correspondant à [A-Z] Regex, il est donc normal de l'avoir toujours faux p>
Oui, mais juste parce que c'est arabe / persan ne signifie pas que cela ne contiendra jamais A-Z. Et s'il y a une URL là-bas?
Ces langues ont également des caractères majuscules ou minuscules, mais le concept de minuscule / majuscule est légèrement différent.
Je suis un orateur arabe autochtone, je suis sûr à 100% qu'aucun majuscule en arabe
Alors, comment vous nommez les différences entre les deux caractères de l'image ci-dessus?
En arabe, la lettre prend une forme différente basée sur son emplacement à l'intérieur du mot et une forme complètement différente lorsqu'il s'agit juste d'une lettre non intérieure, comme par exemple: ب est la forme de la lettre quand elle n'est pas à l'intérieur Word ب est la forme de la même lettre si La première lettre du mot ب est la même lettre au milieu d'un mot ب est la même lettre à la fin du mot un peu compliqué et ne peut pas être mappé sur le concept de majuscules et minuscules en anglais
Merci pour votre explication.
Je me demande si c'est possible. Même si je force à être soit supérieure ou minuscule, j'ai le même code ASCII.
TextInfo myTI = new CultureInfo("ar-DZ",false).TextInfo; string mainString = "Ù Ø±ØØ¨Ø§"; char[] arr = mainString.ToCharArray(); Console.WriteLine((int)myTI.ToLower(arr[3])); Console.WriteLine(char.IsLower(myTI.ToLower(arr[3]))); Console.WriteLine((int)myTI.ToUpper(arr[3])); Console.WriteLine(char.IsLower(myTI.ToUpper(arr[3]))); string word = "word"; arr = word.ToCharArray(); Console.WriteLine((int)arr[3]); Console.WriteLine(char.IsLower(arr[3])); word = "WORD"; arr = word.ToCharArray(); Console.WriteLine((int)arr[3]); Console.WriteLine(char.IsLower(arr[3]));
Que se passe-t-il si vous changez la première ligne à: string arabic = "مرحبا بالعالم https://stackoverflow.com/a/56540736/9945524" .tObower (); code>
Je veux vérifier un personnage qui n'est pas entier la chaîne.
Vous devez d'abord remodeler votre chaîne, les moyens de remodelage convertissent vos caractères texte en glyphe, par exemple: P>
س لا م ع ل ي ك م P> blockQuote>
Créez ensuite une cartographie pour les lettres et comparez-les pour comprendre ce que l'est-il. Il existe des bibliothèques telles que itextpdf qui possède un
arabicigaturiseur code> classe qui vous permet de remodeler vos chaînes arabes / persan. P>
Pour créer la cartographie Vous pouvez obtenir de l'aide de ces bibliothèques: P>
- Python-arabic-reshapi li>
- JS-ARABIC-RESHPAER li>
- Remoder les lettres arabes pour Designers li> ol>
J'ai même utilisé un code pour le code .NET pour la remodelage pour l'un de mes outils gratuits ici à Github . P>
Bien que je pense que cette méthode a une incidence sur la performance des longues chaînes, mais je vais l'essayer. Merci
Une manière ou une autre, vous devez déterminer la forme de n'importe quelle lettre, vous pouvez vérifier le code et la logique des bibliothèques que j'ai partagées.
OK, im utilisant c # + wpf, je vais donc essayer le dernier lien que vous avez placé et si cela fonctionne, je vous ferai savoir.
Je pense que votre réponse est correcte (+1 vote), mais j'ai fait une solution plus simple pour cela, s'il vous plaît voir ma réponse, pensez-vous que ma solution fonctionnera toujours?
Hourra !!! P>
J'ai moi-même inventé! une solution simple à cela. :) p>
Ma solution: p>
Si la lettre suivante n'existe pas ou si elle est vide / espace, la lettre est grande, sinon c'est un caractère petit / milieu. P>
Il semble fonctionner. P>
Ce n'est pas aussi simple. Que diriez-vous des voyelles? Espaces blousins, tout caractère non arabe. Pour par exemple: ن. Dans votre logique ن n'est pas le mi-midi.
@Ali Bahrami, vous avez raison, cela ne fonctionne pas pour des vous vous de vue. Merci encore.
Veuillez consulter la question suivante: Stackoverflow .com / questions / 48273363 / ...
Je pensais que l'arabe n'avait ni des caractères majuscules ni minuscules? Dans ce cas, ces caractères ne sont effectivement ni
@FLAVIO Francisco, ce n'est pas la même chose que ma question.
Point juste @martin, mais juste parce que l'arabe / persan ne signifie pas qu'il ne contiendra jamais A-Z. Et s'il y a une URL là-bas?
@Martin, vous avez tort, veuillez regarder sur l'image ci-dessus.
Remarque: le concept de minuscule / majuscule est légèrement différent en anglais et certaines langues RTL comme arabe / persan, mais ces langues ont des caractères majuscules ou minuscules.
@ MarkciliAvincenti La question est la suivante: Comment vérifier si le caractère arabe / persan est minuscule? I> Qu'est-ce que cela a à voir avec des caractères A-Z?
@Mitram Il n'y a pas de caractères majuscules ni minuscules en arabe. Le caractère peut changer en fonction de sa position (c'est-à-dire début \ fin \ moyenne de mot) mais ce n'est pas majuscule i>. Au lieu de cela, chaque caractère a 4 configurations possibles
Donc, fondamentalement, cela ressemble plus à une question de langue arabe plutôt qu'à une programmation :)
@Martin, alors s'il vous plaît dites-moi comment pouvons-nous vérifier ces configurations pour un personnage?