4 回答

TA貢獻1773條經驗 獲得超3個贊
有幾種方法可以做到這一點,例如 Regex 和 Linq。
對于短字符串,您可以使用 Linq,例如:
public static void Main()
{
var myStringValue = "burger 5$";
var numbersArray = myStringValue.ToArray().Where(x => char.IsDigit(x));
foreach (var number in numbersArray)
{
Console.WriteLine(numbersArray);
}
}

TA貢獻1111條經驗 獲得超0個贊
如果您查看Regex.Split,數字文章。你會在那里找到答案。修改后的代碼可能看起來像
var source = new List<string> {
"burger 5$",
"pizza 6$",
"roll 1$ and salami 2$"
};
var result = new List<int>();
foreach (var input in source)
{
var numbers = Regex.Split(input, @"\D+");
foreach (string number in numbers)
{
if (Int32.TryParse(number, out int value))
{
result.Add(value);
}
}
}
希望能幫助到你。彼得

TA貢獻1790條經驗 獲得超9個贊
您可以查看并使用此代碼解決問題:
List<string> word_number = new List<string>();
List<int> number = new List<int>();
word_number.Add("burger 5$");
word_number.Add("hamburger 6$");
word_number.Add("burger 12$");
foreach (var item in word_number)
{
string[] parts = item.Split(' ');
string[] string_number = parts[1].Split('$');
number.Add(Convert.ToInt16(string_number[0]));
Console.WriteLine(string_number[0]);
}

TA貢獻1796條經驗 獲得超10個贊
使用linq和Regex:
List<string> list = new List<string>(){"burger 5$","ab12c","12sc34","sd3d5"};
Regex nonDigits = new Regex(@"[^\d]");
List<string> list2 = list.Select(l => nonDigits.Replace(l, "")).ToList();
- 4 回答
- 0 關注
- 190 瀏覽
添加回答
舉報