string str="this image has the width of 200px and height of 100px."; int width,height;
我怎样才能获得代码
width= 200; height=100;
如果宽度超过150,我将宽度减小到150,我将计算高度
if(width>150) { height=(height*150)/200; width=150; }
结果字符串将是..
str="this image has the width of 150px and height of 75px.";
我知道substring()indexOf()split()
我知道我可以用“宽度”分割字符串,但我不知道如何找到分割字符串的数量.
解决方法
这有几个部分.首先,我建议使用正则表达式来匹配字符串的一部分,并明确地捕获它的数字部分.
例如,可能的正则表达式可能是:
width\sof\s(?<width>\d+)px\sand\sheight\sof\s(?<height>\d+)px
其中“XXXpx的宽度和YYYpx的高度”匹配,其中XXX被捕获为命名组宽度,YYY被捕获为命名组高度.
这是迄今为止的代码:
string str="this image has the width of 200px and height of 100px."; var regex = new Regex(@"width\sof\s(?<width>\d+)px\sand\sheight\sof\s(?<height>\d+)px"); var match = regex.Match(str);
现在,该匹配有2个组,如前所述,名称为width和height.然后使用可以在捕获组上使用int.Parse来获取值作为数字:
var width = int.Parse(match.Groups["width"].Value); var height = int.Parse(match.Groups["height"].Value);
最后一部分,改变数字并重新制定你似乎很好掌握的字符串,所以我没有把它包括在内.
以下是演示以上所有内容的实例:http://rextester.com/rundotnet?code=CLPS3633
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。