csharp > .Split で複数のデリミタを使う > string separator = ",{:}"; / .Split(separator.ToCharArray()))
JSON文字列を単純に要素だけ取り出したい。
try1
',', '{', ':', '}'
をデリミタとしたい時は参考ページによると、以下のようにすればいいようだ。
.Split(new char [] {',', '{', ':', '}'})
ideoneで実装した。
using System;
using System.Linq;
public class Test
{
public static void Main()
{
string sample = "{\"AAA\":{\"bbb\",\"ccc\"},\"ddd\"";
foreach(var element in sample.Split(new char [] {',', '{', ':', '}'})) {
if (element.Length > 0) {
Console.WriteLine(element);
}
}
}
}
結果
Success time: 0.03 memory: 23880 signal:0
"AAA"
"bbb"
"ccc"
"ddd"
improved (by muroさん)
コメントにて @muro さんから教えていただいた、string型のseparatorに文字を格納しておき、.ToCharArray()を使ってSplitを組み合わせる方法の方がコードリーディングがはるかにしやすい。
また、separatorをstring型にすることで、後で変更したりもできそうという点もいい。
実際のコードはmuroさんのコメント参照。
ideoneでも動作確認済。
http://ideone.com/hB38Yg
Author And Source
この問題について(csharp > .Split で複数のデリミタを使う > string separator = ",{:}"; / .Split(separator.ToCharArray()))), 我々は、より多くの情報をここで見つけました https://qiita.com/7of9/items/e03083db57cb5cb77ef8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .