解析字符串并将其转换为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"
有谁能帮我一下吗?
提示: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)));