web-dev-qa-db-fra.com

Comment puis-je couper une chaîne en c #?

string Word = "hello";

Donc, ce que je veux faire est couper la chaîne afin que je puisse imprimer, par exemple, elloh à la fenêtre de la console. En python, c'est si simple, mais je ne suis pas sûr s'il existe une méthode spécifique pour découper en c #.

11
Ali Appleby

Une chaîne peut être indexée pour obtenir des caractères:

string Word = "hello";
char h = Word[0];

ou les chaînes ont des méthodes pour "trancher":

int start = 0;
int length = 1;
string h = Word.Substring(start, length);

Pourquoi pas lisez la documentation et découvrez vous-même?

18
spender

Il n'y a pas de traduction exacte du concept de découpage, mais un Substring est généralement ce que vous voulez.

Pour moi, vos critères exacts ne sont pas clairs, mais cela ferait ce que vous voulez:

void Main()
{
    var input = "hello";
    var output = input.Substring(1, input.Length - 1) + input.Substring(0, 1);

    Console.WriteLine (output);
}
7
Jeroen Vannevel

vous devriez utiliser la fonction substring de string:

Word.Substring(1);

http://msdn.Microsoft.com/en-us/library/system.string.substring(v=vs.110).aspx

0
mrtig

Pour "trancher" une chaîne, vous utilisez la méthode Substring :

string Word = "hello";
string ordw = Word.Substring(1) + Word.Substring(0, 1);

Cependant, une réponse différente serait de consulter NSlice , une bibliothèque conçue pour gérer le découpage en tableau de tableaux de type python.

Est-ce que ce sera plus facile de faire ce que vous avez demandé? Cela facilitera-t-il le "découpage" de différents types de collections? Peut-être.

Vous voulez peut-être une méthode extension comme ceci:

public static string Rotate(this string s, int numberOfChars)
{
  if (string.IsNullOrEmpty(s))
    return s;
  numberOfChars %= s.Length;
  if (numberOfChars == 0)
    return s;
  if (numberOfChars < 0)
    numberOfChars += s.Length;

  return s.Substring(numberOfChars) + s.Remove(numberOfChars);
}
0
Jeppe Stig Nielsen