解析字符串并转换为int

时间:2014-03-20 02:37:19

标签: c#

我有大量以下类型的字符串, 我需要取高度和宽度值,并对所有高度值求和,并从字符串中取出最大宽度值。

String value :

 "width: 123px ; height: 100px" 
           "width: 149px ; height: 1092px" 
           "width: 120px ; height: 190px" 
           "width: 123px ; height: 100px" 
              ...........

              .........
           "width: 123px ; height: 100px" 

任何人都可以帮助我。

3 个答案:

答案 0 :(得分:0)

提示: 1 - 将所有字符串连接成一个大字符串,以分号(;)分隔值 2 - 用空字符串替换所有“px” 3 - 然后使用分号分割这个大字符串。你会得到一个字符串数组。该数组如下所示

width: 123
height: 100
width: 149
height: 1092
...............

4 - 现在你可以遍历这个数组并分开宽度和高度值

试一试。我可以给你代码。但是,那你就不会学习: - )

答案 1 :(得分:0)

String value = "\"width: 123px ; height: 100px\" \"width: 149px ; height: 1092px\" \"width: 120px ; height: 190px\" \"width: 123px ; height: 100px\" \"width: 123px ; height: 100px\"";

        System.Collections.Generic.List<int> widthArray = new System.Collections.Generic.List<int>();
        System.Collections.Generic.List<int> heightArray = new System.Collections.Generic.List<int>();
        string pattern = @"([\d]+[,.]{0,1})+";

        foreach (var v in value.Split('"'))
        {
            if (!v.Trim().Equals(string.Empty)){
            widthArray.Add(Convert.ToInt32(System.Text.RegularExpressions.Regex.Match(v.Split(';')[0], pattern).Value));
            heightArray.Add(Convert.ToInt32(System.Text.RegularExpressions.Regex.Match(v.Split(';')[1], pattern).Value));
            }
        }

        int maxWidht = widthArray.Max();
        int sumHeight = heightArray.Sum();

使用“将字符串拆分为数组,然后使用';'拆分宽度和高度,使用正则表达式删除不需要的字符,将这些字符放入列表,获取最大值和这些列表的总和。

答案 2 :(得分:0)

假设字符串在可以枚举的内容中并且它们始终采用相同的格式,您可以执行以下操作。

var maxWidth = values.Max(x => int.Parse(x.Split(';')[0].Substring(7, x.Split(';')[0].Length - 10)));
var totalHeight = values.Sum(x => int.Parse(x.Split(';')[1].Substring(8, x.Split(';')[1].Length - 10)));