2012-03-23 18 views
32

私は本当に分割文字列が

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

編集のような何かをしなければならないでしょう

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

"this is a test"を回すような単純なものにしたい:へ明らかに、私はchar配列を必要としません、理想的には文字列の配列が欲しいです。上記のコードに間違ったことは実際にはありませんが、私は簡単な方法があると思います。

+0

文字列に変更するforループを使用して、文字配列へのメッセージを変換し、あなたが本当に文字列として各文字をしたいですか? –

+3

あなたのコードに何が問題なのですか? 'var test ="これはテストです ".Select(x => x.ToString())。ToArray();'? –

答えて

72

私は、これはあなたが探しているものであると考えている:C#で

char[] characters = "this is a test".ToCharArray(); 
+8

-1彼は文字列配列を望んでいると思う。 –

+1

これは私が尋ねたものではありませんが、私は本当に私が尋ねた理由がないことを認識し始めていると思います。 – mowwwalker

+0

@Walkerneoあなたは本当に何をしたいですか? -1? –

3

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

は例です:

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

文字列はすでに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 []配列に追加します。あなたは、文字列を持っている必要がある場合は[]配列は、ここにあなたがC#で各文字で文字列を分割方法は次のとおりです。あなたが ToCharArray()方法を探しているほとんどの

var charArray = "this is a test".ToCharArray().Select(c=>c.ToString()); 
+0

+1私の答えを投稿するときに私が見逃した明白な点を打つための+1。ダー。なぜ私はそれを考えなかったのですか? – David

+1

彼らは 'char'インデクサを持ち、' ​​IEnumerable 'を実装しますが、実際には' char [] 'や' IList 'ではありません。 – LukeH

+1

がtrueです。それらは型文字列ですが、開発者はToCharArray()や文字列[]への任意の型の変換を使用して個々の文字にアクセスする必要はありません。 –

1

これを試してみてください。ただし、投稿に記載されているように、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

これはすでに私が投稿したコードです。 – mowwwalker

0

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

foreach (string s in test) 
{ 
    Console.WriteLine(s); 
} 
+1

OPの質問を参照してください。彼はすでにそれを(短いコードで) –

2

シンプル!!
は1行:

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

その後、

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