读书人

动态字符串截取,该怎么处理

发布时间: 2013-04-07 12:50:11 作者: rapoo

动态字符串截取
本帖最后由 xp447196763 于 2013-04-02 14:14:15 编辑 现有一个尺寸:1234mm×421M
而mm和M是单位,是会变化的,有可能是g、KG、M2、PS等等。
而这个尺寸在文本框里,我怎么得到1234和421呢?
[解决办法]

 int first, second;
string str = "1234mm×421M";
int i=0;
foreach(Match m in Regex.Matches(str, @"\d+"))
{
if (i == 0)
first = int.Parse(m.Value);
else if (i == 1)
{
second = int.Parse(m.Value);
break;
}
i++;
}

[解决办法]
用2楼说的正则表达式也行,如果不会用,其实方法有很多的,通俗的方法,你可以先用"x"好split哈,然后再遍历,是数字的就取出...其实像这种匹配的,一般用正则表达式比较方便.毕竟,它都是经过过去的牛人们研究出来的...
[解决办法]
 string str = "1234mm×421M";
int[] array = System.Text.RegularExpressions.Regex.Split(str, @"\D+").Where(t => t != "").Select(t => Convert.ToInt32(t)).ToArray();

[解决办法]
正则表达式吧 虽然我也不是很会用但是应该是最适合你这种情况的了 上面的牛人给出了代码 你可以参照参考书或者资料看一下
[解决办法]


System.Text.RegularExpressions.MatchCollection mc =System.Text.RegularExpressions.Regex.Matches("1234mm×421M", @"(?<x>\d+)([a-zA-Z])+×(?<y>\d+)([a-zA-Z])+");

if (mc != null && mc.Count > 0)
{

foreach (System.Text.RegularExpressions.Match m in mc)
{

string a = m.Groups["x"].Value;

string b = m.Groups["y"].Value;

}



}

读书人网 >C#

热点推荐