解析字符串并将其转换为int

本文关键字:转换 int 串并 字符 字符串 | 更新日期: 2023-09-27 17:50:59

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

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

有谁能帮我一下吗?

解析字符串并将其转换为int

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

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

4 -现在你可以循环遍历这个数组并分离width和height值

试一试。我本可以给你密码的。但是,这样你就不会学到:-)

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();

使用' '将字符串拆分为数组,然后使用';'拆分宽度和高度,使用正则表达式删除不需要的字符,将它们放入列表中,获得列表中的max和sum。

假设字符串是可以被枚举的,并且它们总是以相同的格式,您可以执行以下操作:

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)));