-1
votes

Array de caractères de chaîne

n'est pas une chaîne déjà un tableau de caractères en C #? Pourquoi existe-t-il une fonction explicite TOCHARACTERARRAY ? Je suis tombé sur cette question lorsque je cherchais des moyens d'inverser une chaîne et j'ai vu quelques réponses convertir la chaîne en un tableau de caractères d'abord avant de continuer avec la boucle pour inverser la chaîne. Je suis débutant dans le codage.

Désolé si cela semble stupide, mais je n'ai pas eu la réponse en googling.


1 commentaires

Conversion d'une chaîne en une matrice de caractères et d'inversion du tableau Ne pas inverser la chaîne .


5 Réponses :


0
votes

Oui Type de chaîne est un tableau de caractères mais une matrice de chaîne n'est pas un tableau de caractères Vous devez convertir chaque chaîne de votre réseau en caractères de caractères afin que vous puissiez facilement inverser ses index puis convertir en chaîne temporaire, puis ajouter cela. chaîne au tableau pour être inversé


2 commentaires

Merci, mais je ne parlais pas d'un "tableau à cordes". Je parlais d'inverser une "chaîne unique". Si c'est déjà un tableau de caractères, quelle est la nécessité de la convertir en une matrice de caractères avant de continuer à inverser le nouveau réseau de caractères.


Désolé mais je ne pouvais pas comprendre plus tôt, maintenant je l'obtiens juste d'ajouter une autre réponse



0
votes

En interne, le texte est stocké en tant que collection séquentielle en lecture seule d'objets de caractère.

Voir le guide de programmation Docs < / p>


0 commentaires

0
votes
public static string ReverseString(string s)
{
    char[] arr = s.ToCharArray();
    Array.Reverse(arr);
    return new string(arr);
}

1 commentaires

Essayez console.writeline (ReSvertring ("Les Misérables")) .



2
votes

n'est pas une chaîne déjà un tableau de caractères en C #?

La mise en œuvre sous-jacente est, oui.

Mais vous n'êtes pas autorisé à accéder directement à cela. chaîne utilise l'encapsulation pour être un objet immuable.

Le tableau réel est privé et caché de la vue. Vous pouvez utiliser un indexeur (propriété) pour lire des caractères mais vous ne pouvez pas les modifier. L'indexeur est en lecture seule.

Alors oui, vous avez besoin de TOCHARACTERARRAY () pour inversion et actions similaires. Notez que vous vous retrouvez toujours avec une chaîne différente, vous ne pouvez pas modifier l'original.


0 commentaires

0
votes

n'est pas une chaîne déjà un tableau de caractères en C #?

Non, une chaîne est une classe qui encapsule une "collection séquentielle de caractères" (voir DOCS ). Remarquez que cela ne dit pas explicitement un "tableau de char". Maintenant, il peut être vrai que la classe String utilise actuellement une matrice de caractères pour y accomplir, mais cela ne signifie pas que cela doit utiliser un tableau de caractères pour atteindre cette fin. Il s'agit d'un concept fondamental de programmation orientée objet qui combine Informations cachées et l'idée d'un "noir boîte "qui fait quelque chose. Peu importe la façon dont la boîte noire (classe) accomplit sa tâche sous la cagoule, le long de temps ne change pas l'interface publique présentée à l'utilisateur final. Peut-être, dans la prochaine version de .NET, une structure magique neuve qui n'est pas une gamme de caractères sera utilisée pour implémenter la classe de cordes. L'utilisateur final peut ne pas être conscient que ce changement a même eu lieu car ils peuvent toujours utiliser la classe de cordes de la même manière, et si elles désirent, pourraient toujours émettre les caractères à un tableau avec Tokararray () ... même si la chaîne n'est plus une gamme de caractères.


0 commentaires