来帮我分分这个数据字符串.

lihongdian 2008-11-11 04:12:14
string asd ="(0.800,1.800)(1.800,1.210)(230.000,1.640)(300.000,-0.150)";

有上面这么个字符串.

要把他分成数组.

我想了想,似乎Regex.Split(asd,")("

然后再去"("或")"号,再Regex.Split(asd,",")

貌似很郁闷,能不能直接截获中间从第几个字符串到第几个字符串的字符呢?但是有符号.貌似又不行.

请各位高手赐教.
...全文
155 23 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
我姓区不姓区 2008-11-11
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 lihongdian 的回复:]
楼上的,貌似foreach很耗资源哦.
有没有不用foreach来分的,正则?是不是比string.replace快?
[/Quote]
foreach怎么会耗费资源呢- -!
正则才耗费资源
lihongdian 2008-11-11
  • 打赏
  • 举报
回复
楼上的,貌似foreach很耗资源哦.
有没有不用foreach来分的,正则?是不是比string.replace快?
我姓区不姓区 2008-11-11
  • 打赏
  • 举报
回复

List<string> list = new List<string>();
string asd = "(0.800,1.800)(1.800,1.210)(230.000,1.640)(300.000,-0.150)";
foreach (Match match in Regex.Matches(asd, "\\(([^,]+,[^\\)]+)\\)"))
foreach (string s in match.Groups[1].Value.Split(','))
list.Add(s);

lovehongyun 2008-11-11
  • 打赏
  • 举报
回复
输出:

/*
0.800
1.800
1.800
1.210
230.000
1.640
300.000
-0.150
*/
lovehongyun 2008-11-11
  • 打赏
  • 举报
回复

static void Main(string[] args)
{
string asd = "(0.800,1.800)(1.800,1.210)(230.000,1.640)(300.000,-0.150)";

string str = asd.Replace(")(", ",").Trim('(').Trim(')');

string[] ary = str.Split(',');
foreach (string s in ary)
{
Console.WriteLine(s);
}
Console.ReadKey();
}
criedshy 2008-11-11
  • 打赏
  • 举报
回复
如果只是括号里的,去掉前后的两个( )再按照)(分组


你这个方法不错:)
asd = asd.Replace(")", "");
asd = asd.Remove(0, 1);
string[] ss = asd.Split('(');

如果将里面的数字都拆成数组

asd=asd.SubString(1,asd.length-1);
asd=asd.Replace(")(", ",");
string[] ss = asd.Split(',');
criedshy 2008-11-11
  • 打赏
  • 举报
回复
"(0.800,1.800)(1.800,1.210)(230.000,1.640)(300.000,-0.150)"; 分成怎么样一个数组?
criedshy 2008-11-11
  • 打赏
  • 举报
回复
"(0.800,1.800)(1.800,1.210)(230.000,1.640)(300.000,-0.150)"; 分成怎么样一个数组?
ustbwuyi 2008-11-11
  • 打赏
  • 举报
回复
楼主可真会引砖抛玉
syc958 2008-11-11
  • 打赏
  • 举报
回复
replace后"("这个然后split(")")可以吗
lihongdian 2008-11-11
  • 打赏
  • 举报
回复
呵呵,感谢大家.到头来还是我的办法更胜一筹啊,,刚刚和大家一起做题.是希望得到更多解法.

asd = asd.Replace(")", "");
asd = asd.Remove(0, 1);
string[] ss = asd.Split('(');

这是我的办法

希望以后大家多多交流.
llsen 2008-11-11
  • 打赏
  • 举报
回复
string asd ="(0.800,1.800)(1.800,1.210)(230.000,1.640)(300.000,-0.150)";

要分成()()()格式的
string[] a = asd.Split(')');

然后for(int i = 0;i<a.Length;i++)
{
a[i] = a[i] + ")";
}

如果不带()
asd.Replace('(','');
string[] a = asd.Split(')');
ustbwuyi 2008-11-11
  • 打赏
  • 举报
回复

string asd = "(0.800,1.800)(1.800,1.210)(230.000,1.640)(300.000,-0.150)";
asd = asd.Substring(1, asd.Length - 2);
asd = asd.Replace(")(", "*");
string[] array = asd.Split('*');
baby_cz 2008-11-11
  • 打赏
  • 举报
回复
正则地不会, 笨办法
string asd = "(0.800,1.800)(1.800,1.210)(230.000,1.640)(300.000,-0.150)";
string str = asd.Replace(")(", ",").Replace("(","").Replace(")","");
string[] s = str.Split(",".ToCharArray());
//Response.Write(s.ToString() + "<br>");
foreach (string a in s)
{
Response.Write(a + "<br>");
}
baby_cz 2008-11-11
  • 打赏
  • 举报
回复
笨办法, 正则地不会.
string asd = "(0.800,1.800)(1.800,1.210)(230.000,1.640)(300.000,-0.150)";
string str = asd.Replace(")(", ",").Replace("(","").Replace(")","");
string[] s = str.Split(",".ToCharArray());
//Response.Write(s.ToString() + "<br>");
foreach (string a in s)
{
Response.Write(a + "<br>");
}
尐孑 2008-11-11
  • 打赏
  • 举报
回复
JeffChung 2008-11-11
  • 打赏
  • 举报
回复
先去两边的,两分割

就是这样,不会复杂啊
accomp 2008-11-11
  • 打赏
  • 举报
回复
先去掉头尾的(和),
再Replace(")(",",");
然后以","分组
fffff_1982 2008-11-11
  • 打赏
  • 举报
回复
我觉得是先
吧*( 什么的替换掉,然后再以Split (asd,","

这样的不知道可以吗?
hengyan 2008-11-11
  • 打赏
  • 举报
回复
学习,帮顶
加载更多回复(3)

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧