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

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,",")

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

请各位高手赐教.
...全文
151 23 打赏 收藏 转发到动态 举报
写回复
用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)
再次声明 千万不要把XiaoQi.dll 跟 XiaoQi.XML 给分开 2013年3月8号 修复了很多bug 调整了源代码 添加的时候 一定要引用 不要直接复制DLL 不然没有方法注释 最强大分分页控件 华丽的分页控件 实用的分页控件 有最新最实用的方法 联系小柒 下面是 AspNetHelp 类 方法概述 ///Show()弹出对话框 ///重载Show()弹出对话框 并且跳转界面 ///ShowJavascript()执行javascript脚本 ///FileDelete()给出文件虚拟路径删除文件 ///FileSize()获取上传文件大小 ///FileUpload()文件上传 路径upload/ 自动重命名 ///FileDownload()文件下载 调用方法如 FileDownload(Response,Server,文件虚拟路径) ///FileTxtWrite()写入TXT文本 给出要创建Txt 文本的地址 ///FileTxtReader()读取TXT文本 Txt 文本的地址 返回一个数组 每一行为数组里的一个元素 ///StringEncrypt() DES字符串加密中文不可以加密 ///StringDecrypt()DES解密字符串 ///StringMD5Encrypt()MD5加密 ///StringPYChar()单个汉字返回该汉字首字母 ///StringRandom()生成指定位数的随机数 ///StringEdit()给出指定字符串长度多少位后用点显示... ///StringReplaceSpace()替换文本中的空格和换行 ///StringColor()改变字的颜色 ///StringNull()当对象是空的时候 转为空字符串 ///StringConvert()汉字转拼音 ///StringNumber()数字转换中文 ///StringRep()url参数为中文时候转换加密 ///StringRes()url参数为中文时候转换解密 ///ShowWindowForm()弹出新窗口页面 ///ShowFormModalDialog()弹出模式窗口页面 ///SqlGetMaxID()给出表名列名 int类型 查询出最大列值+1 适用于主键 ///SqlGetSingle()执行一条计算查询结果语句,返回查询结果(object)。 ///SqlExecute()执行SQL语句,返回影响的记录数 ///SqlRunStr()执行SQL语句,不返回影响的记录数 ///SqlRunReturn()执行SQL语句,并返回第一行第一列结果 ///SqlGetReader()获得SqlDataReader对象 使用完须关闭DataReader,关闭数据库连接 ///SqlGetTable()执行查询语句,返回DataTable ///SqlDataSet()执行查询语句,返回DataSet ///SqlIsCunZai()执行Sql 语句查询是否有数据 如果没有返回假 ///SqlRunProc()执行存储过程 ///DataBindDropDownListDefault()DropDownList控件绑定 带默认选择项 如"请选择" ///DataBindDropDownList()DropDownList控件绑定 不带默认选择项 ///DataBindRadioButtonList()RadioButtonList控件绑定 默认第一个选中 ///DataBindCheckBoxList()CheckBoxList控件绑定 ///ElseIpAddr()调用此方法 返回当前登录的省市IP地址 ///ElseDataTimeIng()返回本地电脑的当前日期的年月日时分秒 动态的显示 JS实现 ///ElsePageLoad()页面加载数据加载完成呈现页面 ///ElseCkeck()返回页面验证码图片 使用方法:单独创建一个页面 在首次加载事件里写 AspNetHelp.ElseCkeck(Page); 在使用验证码的页面直接写 img src="这个页面的路径" 注意验证码保存在 Session["CheckCode"]中 这里是区分大小写的 ///ElseColorRGB()由于QQ截图的取色会出现RGB的颜色 这里能转换成16进制 分页控件详情请看内置文档
再次声明 千万不要把XiaoQi.dll 跟 XiaoQi.XML 给分开 添加的时候 一定要引用 不要直接复制DLL 不然没有方法注释 最强大分分页控件 华丽的分页控件 实用的分页控件 有最新最实用的方法 联系小柒 下面是 AspNetHelp 类 方法概述 ///Show()弹出对话框 ///重载Show()弹出对话框 并且跳转界面 ///ShowJavascript()执行javascript脚本 ///FileDelete()给出文件虚拟路径删除文件 ///FileSize()获取上传文件大小 ///FileUpload()文件上传 路径upload/ 自动重命名 ///FileDownload()文件下载 调用方法如 FileDownload(Response,Server,文件虚拟路径) ///FileTxtWrite()写入TXT文本 给出要创建Txt 文本的地址 ///FileTxtReader()读取TXT文本 Txt 文本的地址 返回一个数组 每一行为数组里的一个元素 ///StringEncrypt() DES字符串加密中文不可以加密 ///StringDecrypt()DES解密字符串 ///StringMD5Encrypt()MD5加密 ///StringPYChar()单个汉字返回该汉字首字母 ///StringRandom()生成指定位数的随机数 ///StringEdit()给出指定字符串长度多少位后用点显示... ///StringReplaceSpace()替换文本中的空格和换行 ///StringColor()改变字的颜色 ///StringNull()当对象是空的时候 转为空字符串 ///StringConvert()汉字转拼音 ///StringNumber()数字转换中文 ///StringRep()url参数为中文时候转换加密 ///StringRes()url参数为中文时候转换解密 ///ShowWindowForm()弹出新窗口页面 ///ShowFormModalDialog()弹出模式窗口页面 ///SqlGetMaxID()给出表名列名 int类型 查询出最大列值+1 适用于主键 ///SqlGetSingle()执行一条计算查询结果语句,返回查询结果(object)。 ///SqlExecute()执行SQL语句,返回影响的记录数 ///SqlRunStr()执行SQL语句,不返回影响的记录数 ///SqlRunReturn()执行SQL语句,并返回第一行第一列结果 ///SqlGetReader()获得SqlDataReader对象 使用完须关闭DataReader,关闭数据库连接 ///SqlGetTable()执行查询语句,返回DataTable ///SqlDataSet()执行查询语句,返回DataSet ///SqlIsCunZai()执行Sql 语句查询是否有数据 如果没有返回假 ///SqlRunProc()执行存储过程 ///DataBindDropDownListDefault()DropDownList控件绑定 带默认选择项 如"请选择" ///DataBindDropDownList()DropDownList控件绑定 不带默认选择项 ///DataBindRadioButtonList()RadioButtonList控件绑定 默认第一个选中 ///DataBindCheckBoxList()CheckBoxList控件绑定 ///ElseIpAddr()调用此方法 返回当前登录的省市IP地址 ///ElseDataTimeIng()返回本地电脑的当前日期的年月日时分秒 动态的显示 JS实现 ///ElsePageLoad()页面加载数据加载完成呈现页面 ///ElseCkeck()返回页面验证码图片 使用方法:单独创建一个页面 在首次加载事件里写 AspNetHelp.ElseCkeck(Page); 在使用验证码的页面直接写 img src="这个页面的路径" 注意验证码保存在 Session["CheckCode"]中 这里是区分大小写的 ///ElseColorRGB()由于QQ截图的取色会出现RGB的颜色 这里能转换成16进制 分页控件详情请看内置文档
基于51单片机的液晶显示屏控制系统设计 1 概述 1.1系统背景 液晶显示器件在中国已有二十余年的发展历史。二十余年来,液晶显示器件从实验室走 向大规模生产集团,形成了独立的产业部门。现在,液晶显示几乎已经应用于生产,生 活的各个领域,人们几乎时时处处都要与这一神奇而又普通的面孔打交道。 液晶显示是集单片机技术、微电子技术、信息处理于一体的新型显示方式。由于液晶 显示器具有低压低功耗,显示信息量大易于彩色化,无电磁辐射,长寿命,无污染等特 点。LCD是目前显示产业中发展速度最快,市场应用最广的显示器件,成为众多显示媒体 中的佼佼者,在越来越多的领域中发挥作用,是目前显示器件中一个理想的选择。 LCD在监控系统中的应用:目前大多数监控系统自带的显示系统为LED数码管显示,这 样显示效果比较单一,只能显示监控系统的测量值。而LCD液晶显示器不仅可以显示数值 、汉字等,并且可以显示文本和图形。利用LCD和键盘实现人机交互,使监控系统独立工 作成为可能。通过监控系统对现场的单回路控制器进行参数设置,对各个单回路控制器 的工作进行监控。 LCD在时钟中的应用:在日常生活中我们会经常看到时间的显示,这些显示大都是采 用液晶显示器来显示的,而对其中的汉字无法用显示来解决。我们利用LCD液晶模块制成 的小屏幕实现了时间的显示,显示格式为"时时:分分:秒秒"。另外,可以增加闹钟功 能,时间到了则产生音乐声;还可以增加万年历显示"年月日"等多项功能。 LCD在大屏幕显示中的应用:大屏幕显示的应用范围极广,随着社会发展,公众生活 的加强,人们对能够面向广大公众传递信息的显示装置越来越感到必需。使用液晶投影 显示大屏幕,不仅有投影仪,指挥用大屏幕,还有液晶投影彩色电视。它可以用一个体 积很小的系统装置,实现100英寸以上的非常漂亮的大屏幕电视显示。它与传统的显示媒 体相比,具有分辨率极高,透过性好,显示内容丰富,彩色易于控制等优点。 随着计算机技术及电子通信技术的发展,LCD显示屏作为一种新的传媒工具,现已经 应用到商业、军事、车站、宾馆、体育、新闻、金融、证券、广告以及交通运输等许多 行业,大到几十平方米的大屏幕,小到家庭影院用的图文显示屏,以及政府部门应用的 电子黑板,证券、银行等部门用的信息数字混合屏。LCD显示屏带来广泛的社会效益和经 济效益,具有良好的发展前景。 1.2 系统概述 本实验系统分为单片机最小系统板和液晶显示屏两部分。单片机最小系统负责接收个人 计算机所编辑的文本及内容,通过RS232串行接口通信完成单片机与PC机之间的数据传送 ,而个人计算机(即PC机),主要完成显示内容的编辑、字符码的查找、字符数据的发 送等工作。基于Windows操作系统下的文本编辑软件有很多种,例如:记事本、Micorso ft Word、写字板等,我们可以采用任何一种编辑软件将要显示的内容(包括汉字、中英文 字母、标点符号等)编辑成一个文本文件,然后通过已经编写好的应用程序在特定的字 库中依次搜索到文本文件中的内容,并且取出该字符的字模数据,此项工作称为字模数 据的提取;字模数据文件的生成也就是将取出的字模按顺序存放到一个十六进制文件中 ;字符数据建立好之后将其存放在PC机的硬盘上,等到需要的时候通过串行通信软件将 字符数据文件发送给液晶显示系统模块。 LCD显示屏包括主控制模块和LCD液晶显示模块。主控制模块负责接收单片机发送过来 的字模数据文件,并且协调各个LCD液晶显示模块工作,主控制器模块的核心是T6963C控 制器,为了存储字模数据还在主控制器模块中扩展了一片8K存储器芯片6264;LCD液晶显 示模块由两片行驱动器T6A40和三片列驱动器T6A39进行驱动,该模块一边接收主控制模 块的数据,一边将数据送LCD液晶显示屏显示,为了方便系统的扩展,各模块之间采用串 行口接收数据,并且接到系统串行总线上。 本系统主要是实现单片机与液晶显示模块之间的接口技术,可以采用间接控制方式完 成。将液晶显示模块接口与单片机系统板中的某个并行I/O接口连接,计算机通过对该I/ O接口的操作间接的实现对模块的控制。 2 系统设计方案 此LCD液晶显示控制系统设计的关键是要实现LCD的显示控制。应该先从显示方式的确 定入手,接下来设计相应显示方式的电路,要实现显示内容的实时更新,就必须考虑字 模数据的存储及通信电路的设计。 2.1字模数据的存储 由于89C51单片机内部程序存储器(ROM)只有4K空间,本设计采用16×16点阵显示一个 汉字,每一行需要两个字节数据,一个汉字占16×2=32字节,汉字一共有6000多个,不 可能将庞大的汉字字库存入在单片机内部,即使将预先要显示的内容存入ROM中,也不便 于实时控制,所以只有考虑扩展外部数据存储器。 利用Window
电子技术基础课程设计报告 定 时 闹 钟 2014年12月24日 摘要 本设计是一个定时闹钟,它仅使用单片的40引脚单片机完成闹钟的全部功能。设计目 的是为了学习和巩固单片机知识,使对已学过的基础知识能有更深入的理解,学会独立 思考、独立思考、独立工作,以及提高对所学应用基本理论分析和解决实际问题的能力 。 本文设计的定时闹钟采用80c51芯片,用汇编语言进行编程,时、分、秒用6位LED数 码管显示。在电路中通过四个按键S1、S2、S3和S4来进行定时和调时,定时时间到通过 喇叭发出报警声。 设计系统的主要功能 · 能显示 时时-分分-秒秒。 · 能够设置定时时间、 修改定时时间。 · 到定时时间能发出报警 1 系统总体方案及硬件设计 1.1 系统总体方案 1)由于要显示数字时间,所以需要6位数码管。 2)时间的定时用时钟电路,修改时间和定时用手动按键控制,报警声通过喇叭发出 。 3)80c51单片机加上外围器件(2个3位共阳数码管,8个限流电阻和一个蜂鸣器)和 应用程序(ISIS 7 Professional软件和KEIL编译软件),构成相应的应用系统。 1.2系统设计方框图 1.3硬件设计 1.3.1芯片:80c51 80c51芯片内不包含一个8位中央处理器cpu,4kb程序存储器ROM,128B随机存取存储器 ,RAM,4个8位并行I/O接口,1个全双工串行通信接口,2个16 位定时器、计数器级及21个特殊功能寄存器。 由先进CMOS 工艺制造并带有非易失性Flash 程序存储器 全部支持12 时钟和6 时钟操作 P89C51X2 和P89C52X2/54X2/58X2 分别包含128 字节和256 字节RAM 32 条I/O 口线 3 个16 位定时/计数器 6 输入4 优先级嵌套中断结构 1 个串行I/O 口 可用于多机通信 I/O 扩展或全双工UART以及片内振荡器和时钟电路。此外,由于器件采用了静态设计,可提 供很宽的操作频率范围,频率可降至0 。可实现两个由软件选择的节电模式,空闲模式和掉电模式,空闲模式冻结CPU但RAM定 时器,串口和中断系统仍然工作掉电模式保存RAM的内容 但是冻结振荡器 导致所有其它的片内功能停止工作。由于设计是静态的时钟可停止而不会丢失用户数据 运行可从时钟停止处恢复。 .1.3.2蜂鸣器 由P3.7口控制蜂鸣器,使其定时时间到能发出报警声。 1.3.3时钟电路 单片机的时钟产生方法有两种:内部时钟方式和外部时钟方式。本系统中单片机采用 内部时钟方式。最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路。振 荡晶体可在1.2MHz~12MHz之间。电容值无严格要求,但电容取值对振荡频率输出的稳定 性、大小和振荡电路起振速度有少许影响,一般可在20pF~100pF之间取值。 单片机的时钟电路:如图所示 限流电阻:8个10k电阻 控制按键:本系统要进行时间的调整和定时,因此用4个手动按键对其进行控制。 1.3.4显示器模块的设计 利用2个七段数码管6个选位引脚连接C51单片机 P2.5 –P2.0接口,其他8个引脚分别通过限流电阻与C51单片机的P0.0 - P0.7和共阳极数码管连接。 数码管: 单片机中通常使用7段LED,LED是发光二极管显示器的缩写。LED显示器由于结构简单 ,价格便宜,体积小,亮度高,电压低,可靠性高,寿命长,响应速度快,颜色鲜艳, 配置灵活,与单片机接口方便而得到广泛应用。LED显示器是由若干个发光二极管组成显 示字段的显示部件,当发光二极管导通时,相应的一个点或一个笔划发光,控制不同组 合的二极管导通,就能显示出各种字符。 如图所示 2软件设计 2.1划分模块 根据设计要求,定时闹钟程序可分为以下几个模块: 1)显示时间的设置; 2)闹钟时间的设置: 4)定时时间的响应。 3.2程序流程图 程序流程图 2.3汇编程序 ORG 0000H LJMP START ORG 000BH LJMP TIME ;;;;;;;;初始化;;;;;;;; START: MOV SP, #50H MOV 20H,#00H ;定义秒 MOV 21H,#00H ;定义分 MOV 22H,#00H ;定义时 MOV 23H,#01H ;定义闹钟分钟 MOV 24H,#01H ;定义闹钟小时 MOV 25H,#00H MOV 26H,#01H MOV 30H,#00H ;BCD SECOND MOV 31H,#00H MOV 32H,#00H ;BCD MINUTE MOV 33H,#00H MOV 34H,#00H ;BCD HOUR MOV 35H,#00H MOV 36H,#01H MOV 37H,#00H MOV 38H,#01H MOV 39H,#00H MOV 50H,

62,046

社区成员

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

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

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

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