webentwicklung-frage-antwort-db.com.de

Zeichenfolge in ein String-Array aus einzelnen Zeichen aufteilen

Ich möchte etwas so einfaches wie die Umwandlung von "this is a test" in 

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

Müsste ich wirklich sowas machen

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

edit: Um zu klären, ich möchte kein char-Array, idealerweise ein Array von Zeichenfolgen. Ich sehe mit dem obigen Code nichts wirklich falsch, außer der Tatsache, dass ich denke, dass es einen einfacheren Weg gibt.

41
mowwwalker

Ich glaube, das ist, wonach Sie suchen:

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

Zeichenfolgen in C # verfügen bereits über einen Zeichenindex

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

Und...

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

Das funktioniert auch ...

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

Und das...

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

EDIT:

Ich habe bemerkt, dass die Frage bezüglich char [] Arrays aktualisiert wurde. Wenn Sie ein String-Array [] haben müssen, teilen Sie eine Zeichenfolge an jedem Zeichen in c # auf

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

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

Einfach!!
eine Linie:

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

Sie können einfach String.ToCharArray () verwenden und dann jedes Zeichen als Zeichenfolge in Ihrem Code behandeln.

Hier ist ein Beispiel:

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

Versuche dies:

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

Wahrscheinlich suchen Sie nach der Methode ToCharArray () . Sie müssen jedoch etwas mehr Arbeit erledigen, wenn ein string[] erforderlich ist, wie Sie in Ihrem Beitrag angegeben haben.

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

Edit: Wenn Sie sich Sorgen um die Prägnanz der Konvertierung machen, schlage ich vor, dass Sie eine Erweiterungsmethode erstellen.

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

Konvertieren Sie die Nachricht in ein Zeichenarray und verwenden Sie eine for-Schleife, um sie in eine Zeichenfolge zu ändern

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);

Ergebnis:

this
is
a
test
0
Last2Night