Je veux quelque chose d'aussi simple que de transformer "this is a test"
en
new string[] {"t","h","i","s"," ","i","s"," ","a"," ","t","e","s","t"}
Devrais-je vraiment faire quelque chose comme
test = "this is a test".Select(x => x.ToString()).ToArray();
edit: Pour clarifier, je ne veux pas de tableau de caractères, idéalement, je veux un tableau de chaînes. Je ne vois vraiment rien qui cloche dans le code ci-dessus, mis à part le fait que je penserais qu'il existe un moyen plus simple.
Je crois que c'est ce que vous cherchez:
char[] characters = "this is a test".ToCharArray();
Les chaînes en C # ont déjà un indexeur de caractères
string test = "this is a test";
Console.WriteLine(test[0]);
Et...
if(test[0] == 't')
Console.WriteLine("The first letter is 't'");
Cela fonctionne aussi ...
Console.WriteLine("this is a test"[0]);
Et ça...
foreach (char c in "this is a test")
Console.WriteLine(c);
MODIFIER:
J'ai remarqué que la question avait été mise à jour en ce qui concerne les tableaux de caractères. Si vous devez avoir un tableau string [], voici comment diviser une chaîne à chaque caractère en c #:
string[] test = Regex.Split("this is a test", string.Empty);
foreach (string s in test)
{
Console.WriteLine(s);
}
Simple!!
une ligne:
var res = test.Select(x => new string(x, 1)).ToArray();
Vous pouvez simplement utiliser String.ToCharArray () puis traiter chaque caractère comme une chaîne de caractères dans votre code.
Voici un exemple:
foreach (char c in s.ToCharArray())
Debug.Log("one character ... " +c);
Essaye ça:
var charArray = "this is a test".ToCharArray().Select(c=>c.ToString());
Vous recherchez probablement la méthode ToCharArray () . Cependant, vous devrez faire un peu plus de travail si un string[]
est requis, comme vous l'avez noté dans votre message.
string str = "this is a test.";
char[] charArray = str.ToCharArray();
string[] strArray = str.Select(x => x.ToString()).ToArray();
Edit: Si vous êtes inquiet à propos de la concision de la conversion, je vous suggère d’en faire une méthode d’extension.
public static class StringExtensions
{
public static string[] ToStringArray(this string s)
{
if (string.IsNullOrEmpty(s))
return null;
return s.Select(x => x.ToString()).ToArray();
}
}
Convertissez le message en tableau de caractères, puis utilisez une boucle for pour le changer en chaîne
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]);
}
string input = "this is a test";
string[] afterSplit = input.Split();
foreach (var Word in afterSplit)
Console.WriteLine(Word);
Résultat:
this
is
a
test