我試圖從字串中提取資訊,然后將該資訊分配給一組屬性。字串設定為“帳號:12345。帳戶名稱:Jimmy John。帳戶余額:3.9。”。
我想要做的是獲取帳號,帳戶名稱和余額金額,但我不知道如何選擇分號和句點之間的子字串。我嘗試在分號的索引處做一個子字串,但只選擇了第一個分號,并回傳一個 0 長度的字串,導致索引越界例外。
uj5u.com熱心網友回復:
這是一種不需要 Substring 的方法。從您提供的示例中,它假設:
- 所有欄位識別符號都以字串“Account”開頭
- 分號僅用作欄位識別符號和欄位值之間的分隔符
- 可以從值中修剪空格和句點(例如,在您的示例中洗掉“3.9”之后的尾隨“.”)
如果所有這些都成立,那么這應該有效:
var input = "Account Number: 12345. Account Name: Jimmy John. Account Balance: 3.9.";
var values = input
.Split("Account", StringSplitOptions.RemoveEmptyEntries)
.Select(value => value.Split(':').Last().Trim(' ', '.'))
.ToList();
Console.WriteLine(values[0]); // 12345
Console.WriteLine(values[1]); // Jimmy John
Console.WriteLine(values[2]); // 3.9
uj5u.com熱心網友回復:
正則運算式會更好
var r = new Regex("Account Number: (?<nu>\d )\. Account Name: (?<na>.*)\. Account Balance: (?<b>[0-9.] )\.");
var m = r.Match(yourString);
現在m有一個 Groups 屬性,您可以通過尖括號中的字串進行索引:
m.Groups["nu"].Value //it's "l2345"
m.Groups["na"].Value //it's "Jimmy John"
m.Groups["b"].Value //it's "3.9"
uj5u.com熱心網友回復:
簡單地說,如果這種冒號和句點形式總是被觀察到并且是有規律的(名稱從不包含句點),你就可以;
var bits = yourString.Split(new[]{": ","."},6);
然后數字是bits[1],名字是 3,余額是 5(雖然它會有一個尾隨句點;你必須用 修剪它.TrimEnd('.'))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/356564.html
下一篇:從控制器方法填充下拉串列
