web-dev-qa-db-ja.com

文字列をc#でスライスするにはどうすればよいですか?

string Word = "hello";

だから私がやりたいのは、文字列をスライスして、たとえばellohをコンソールウィンドウに出力できるようにすることです。 pythonでそれはとても簡単ですが、c#でスライスするための特定の方法があるかどうかはわかりません。

16
Ali Appleby

文字列にインデックスを付けて文字を取得できます。

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

または文字列には、「スライス」するためのメソッドがあります。

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

なぜ ドキュメントを読む で、自分で調べてみませんか?

29
spender

スライスの概念からの正確な翻訳はありませんが、 Substring が一般的に必要なものです。

それをスライスするための正確な基準は私にはわかりませんが、これはあなたが望むことをするでしょう:

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

    Console.WriteLine (output);
}
8
Jeroen Vannevel

文字列のsubstring関数を使用する必要があります。

Word.Substring(1);

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

0
mrtig

文字列を「スライス」するには、 Substring メソッドを使用します。

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

ただし、別の答えは、Pythonのような配列のスライスを処理するために構築されたライブラリ NSlice をチェックアウトすることです。

それはあなたが尋ねたことをより簡単にするでしょうか?いいえ。異なる種類のコレクションを「スライス」するのが簡単になりますか?たぶん。

0

多分あなたはextension methodのようにしたいでしょう:

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