Déplacer une chaîne en C #
static void Main(string[] args)
{
string s = "ABCDEFGH";
string newS = ShiftString(s);
Console.WriteLine(newS);
}
public static string ShiftString(string t)
{
char[] c = t.ToCharArray();
char save = c[0];
for (int i = 0; i < c.Length; i++)
{
if (c[i] != c[0])
c[i] = c[i - 1];
}
Console.WriteLine(c);
String s = new string(c);
return s;
}
J'ai besoin de changement de la chaîne s d'un espace vers la gauche, donc je me retrouve avec de la corde: "BCDEFGHA"
Alors j'ai pensé à changer la chaîne dans un tableau de char et de travailler mon chemin à partir de là, mais je ne sais pas comment faire pour réussir à faire ce travail. Je suis assez certain que je besoin d'une boucle for, mais j'ai besoin d'aide sur comment faire passer le char de la séquence d'un espace vers la gauche.
source d'informationauteur user2104751
Vous devez vous connecter pour publier un commentaire.
comment à ce sujet?
Vous pouvez essayer ceci:
Comme une extension de la méthode:
Ensuite, vous pouvez utiliser:
L'algorithme pour résoudre ce type de problème sur maj n positions est un double de la chaîne, de concaténer ensemble et de la sous-chaîne. ( n < longueur(chaîne) )
si vous souhaitez déplacer des n position, vous pouvez le faire
Personnellement, je ferais ceci:
Vous pouvez prendre avantage du fait que
string
estIEnumerable<char>
:La classe StringBuilder vous donner de meilleures performances
Ci-dessous les méthodes de prendre le nombre n qui indique combien de fois vous voulez décalage/rotation de la chaîne. J'ai pris le MOD par la longueur de la chaîne si le nombre est plus grand que la longueur de la chaîne.
///Vous pouvez faire une utilisation de Sauter et de Prendre les fonctions de la Chaîne des opérations
vous aussi vous pouvez le faire avec un simple LINQ déclaration:
Remarque: la même chose peut être réalisé avec de simples et/ou while