「4,6,8\n9,4」という文字列があります
に基づいてこれを分割し、\ n
出力配列は
4
6
8
9
4
編集:
今、コンソールから上記の文字列を入力すると、コンソールから文字列を読み取っていますが、背後のコードでは"4,6,8\\n9,4"
として取得します。 "," and "\\n"
を使用して分割したいので。式を変更するにはどうすればよいですか?
string.Split(char []) を使用します
string strings = "4,6,8\n9,4";
string [] split = strings .Split(new Char [] {',' , '\n' });
[〜#〜] edit [〜#〜]
不要な空のアイテムがある場合は、以下を試してください。 String.Splitメソッド(String []、StringSplitOptions)
string [] split = strings .Split(new Char [] {',' , '\n' },
StringSplitOptions.RemoveEmptyEntries);
EDIT2
これは、更新された質問に対して機能します。必要なすべての分割文字をchar []
に追加します。
string [] split = strings.Split(new Char[] { ',', '\\', '\n' },
StringSplitOptions.RemoveEmptyEntries);
別のオプションは Regex.Split を使用することです。これは、分割シーケンスがより複雑な場合に役立ちます。たとえば、次のようにスペースも分割区切り文字の一部にできる場合:
"4,6,8 , 9\\n\\n4"
次に:
using System.Text.RegularExpressions;
var i = "4,6,8 , 9\n\n4";
var o = Regex.Split(i, @"[,\s\n]+");
// now o is:
// new string[] { "4", "6", "8", "9" }
使用される正規表現は「より受け入れやすい」ことに注意してください。\ nの間の空の「スペース」は無視され、「4 6 8 9 4」とまったく同じように受け入れられることに注意してください。猫の皮を剥ぐ方法よりも.
ハッピーコーディング。
var s = "4,6,8\n9,4";
var split = s.Split(new char[]{',', '\n'});
しかし、これはだまされている必要があります...
[〜#〜] edit [〜#〜]:コメントのアドレス指定。
このコード:
static void Main(string[] args)
{
var s = "4,6,8\n9,4";
foreach (var a in s.Split(new char[] { ',', '\n' }))
System.Diagnostics.Debug.WriteLine(a);
}
これを出力します:
4
6
8
9
4
[〜#〜] edit [〜#〜]:コンソールからの入力の読み取りは異なります。 \n
は、手動で入力した場合は異なります。
static void Main(string[] args)
{
var s = "4,6,8\\n9,4";
foreach (var a in s.Split(new string[] { ",", "\\n" }, StringSplitOptions.RemoveEmptyEntries))
System.Diagnostics.Debug.WriteLine(a);
}
string tosplit = "4,6,8\n9,4";
var split = tosplit.Split(new Char [] {',', '\n' });
正しく印刷/表示されない場合に備えて:
split.ToList().ForEach(Console.WriteLine);
String.Replace( '\ n'、 '、')に続けてstring.split( '、')を実行できますか?