4 回答

TA贡献1829条经验 获得超7个赞
您可以尝试正则表达式以提取数字
using System.Text.RegularExpressions;
...
string source = "400X500 abc";
string[] numbers = Regex
.Matches(source, "[0-9]+")
.OfType<Match>()
.Select(match => match.Value)
.ToArray();
string width = numbers.ElementAtOrDefault(0) ?? "";
string height = numbers.ElementAtOrDefault(1) ?? "";
或者(如果您想确保存在X分隔符)
Match match = Regex
.Match(source, @"([0-9]+)\s*X\s*([0-9]+)", RegexOptions.IgnoreCase);
string width = match.Success ? match.Groups[1].Value : "";
string height = match.Success ? match.Groups[2].Value : "";

TA贡献1854条经验 获得超8个赞
我假设输入字符串始终采用相同的格式。
“高度 X 宽度 abc”
var value = "400X500 abc";
var vals = value.Trim().Split('X');
var height = new string(vals[0] == null ? "0".ToArray() : vals[0].Where(char.IsDigit).ToArray());
var width = new string(vals[1] == null ? "0".ToArray() : vals[1].Where(char.IsDigit).ToArray());
我相信你可以根据需要进行调整。
编辑:
我调整了代码以避免注释中指出的问题,并确保您只从字符串中获取数字

TA贡献1790条经验 获得超9个赞
假设文本总是采用“100X200 aabdsafgds”格式,那么一个可行的解决方案将类似于:
var value = "100X200 aabdsafgds";
var splitValues = value.Split(new[] { 'X', ' ' }, StringSplitOptions.RemoveEmptyEntries);
var value1 = splitValues[0];
var value2 = splitValues[1];

TA贡献1772条经验 获得超5个赞
你可以尝试这样的事情:
string data = "400X500 abc";
string[] splitData = data.TrimEnd('a', 'b', 'c').Trim().Split('X');
string width = splitData[0] ?? string.Empty;
string height = splitData[1] ?? string.Empty;
- 4 回答
- 0 关注
- 187 浏览
添加回答
举报