读书人

C#截取字符串解决思路

发布时间: 2012-09-11 10:49:04 作者: rapoo

C#截取字符串
string a =" [{"name":"张三","age":16},{"name":"李四","age":15},{"name":"王武","age":20},{"name":"臧黄","age":13}] ";

将a这个字符串,只截取大括号{}里面的!哪位高手可以帮忙解决???

[解决办法]

C# code
 string jsonStr = " [{\"name\":\"张三\",\"age\":16},{\"name\":\"李四\",\"age\":15},{\"name\":\"王武\",\"age\":20},{\"name\":\"臧黄\",\"age\":13}] ";                string[] result1 = Regex.Matches(jsonStr,@"\{[^{}]+?\}").Cast<Match>().Select(a=>a.Value).ToArray();                /*                         [0]    "{\"name\":\"张三\",\"age\":16}"    string                        [1]    "{\"name\":\"李四\",\"age\":15}"    string                        [2]    "{\"name\":\"王武\",\"age\":20}"    string                        [3]    "{\"name\":\"臧黄\",\"age\":13}"    string                 */                string[] result2 = Regex.Matches(jsonStr, @"(?<=\{)[^{}]+?(?=\})").Cast<Match>().Select(a => a.Value).ToArray();                /*                         [0]    "\"name\":\"张三\",\"age\":16"    string                        [1]    "\"name\":\"李四\",\"age\":15"    string                        [2]    "\"name\":\"王武\",\"age\":20"    string                        [3]    "\"name\":\"臧黄\",\"age\":13"    string                 */
[解决办法]
string a =" [{"name":"张三","age":16},{"name":"李四","age":15},{"name":"王武","age":20},{"name":"臧黄","age":13}] ";

大家的答案很多,应该能实现你说的。

方法不外乎就那些。

1 自己的方法: 字符串截取, 这个很好弄.while 循环查找"{", 后面一个减去前面一个的位置,再减去1,就是要截取的长度。其实分割更快,按照","分割,在处理索引为0的和length-1的。

2 正则表达式匹配。
var array=Regex.Matches(a,@"{[^}]*}").Cast<Match>().Select(t=>t.Value).ToArray();

3 他们说的josn格式

推荐第二个

读书人网 >C#

热点推荐