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 關注
- 179 瀏覽
添加回答
舉報