我有大量以下类型的字符串, 我需要取高度和宽度值,并对所有高度值求和,并从字符串中取出最大宽度值。
String value :
"width: 123px ; height: 100px"
"width: 149px ; height: 1092px"
"width: 120px ; height: 190px"
"width: 123px ; height: 100px"
...........
.........
"width: 123px ; height: 100px"
任何人都可以帮助我。
答案 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)));