web-dev-qa-db-ja.com

文字列を単一文字の文字配列に分割します

"this is a test"

new string[] {"t","h","i","s"," ","i","s"," ","a"," ","t","e","s","t"}

私は本当に何かをしなければなりませんか

test = "this is a test".Select(x => x.ToString()).ToArray();

編集:明確にするために、私はchar配列が必要ではなく、理想的には文字列の配列が必要です。私は簡単な方法があると思うという事実を除いて、実際には上記のコードに何の問題もありません。

47
mowwwalker

私はこれがあなたが探しているものだと信じています:

char[] characters = "this is a test".ToCharArray();
102
Brandon Moretz

C#の文字列には既にcharインデクサーがあります

string test = "this is a test";
Console.WriteLine(test[0]);

そして...

if(test[0] == 't')
  Console.WriteLine("The first letter is 't'");

これも機能します...

Console.WriteLine("this is a test"[0]);

この...

foreach (char c in "this is a test")
  Console.WriteLine(c);

EDIT

Char []配列に関して質問が更新されていることに気付きました。 string []配列が必要な場合、c#の各文字で文字列を分割する方法は次のとおりです。

string[] test = Regex.Split("this is a test", string.Empty);

foreach (string s in test)
{
  Console.WriteLine(s);
}
31
Chris Gessler

シンプル!!
1行:

 var res = test.Select(x => new string(x, 1)).ToArray();
4
cheziHoyzer

String.ToCharArray() を使用して、各文字をコード内の文字列として扱うことができます。

以下に例を示します。

    foreach (char c in s.ToCharArray())
        Debug.Log("one character ... " +c);
3
David

これを試して:

var charArray = "this is a test".ToCharArray().Select(c=>c.ToString());
2
David Peden

ほとんどの場合、 ToCharArray() メソッドを探しています。ただし、投稿でメモしたように、string[]が必要な場合は、もう少し作業が必要になります。

    string str = "this is a test.";
    char[] charArray = str.ToCharArray();
    string[] strArray = str.Select(x => x.ToString()).ToArray();

編集:変換の簡潔さが心配な場合は、拡張メソッドにすることをお勧めします。

public static class StringExtensions
{
    public static string[] ToStringArray(this string s)
    {
        if (string.IsNullOrEmpty(s))
            return null;

        return s.Select(x => x.ToString()).ToArray();
    }
} 
1
ahawker

メッセージを文字配列に変換し、forループを使用して文字列に変更します

string message = "This Is A Test";
string[] result = new string[message.Length];
char[] temp = new char[message.Length];

temp = message.ToCharArray();

for (int i = 0; i < message.Length - 1; i++)
{
     result[i] = Convert.ToString(temp[i]);
}
0
William
string input = "this is a test";
string[] afterSplit = input.Split();

foreach (var Word in afterSplit)
    Console.WriteLine(Word);

結果:

this
is
a
test
0
Last2Night