亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從字符串中獲取第一個數字

從字符串中獲取第一個數字

C#
手掌心 2021-07-21 21:26:19
我有一個字符串?9CZIA KUOTA PIV 1,21 SUMA 12,36 otóuka 2 | 0350 |tKasa 1我想在單詞SUMA之后獲得第一個十進制數字(帶逗號)(SUMA 和數字之間可能有更多單詞)12,36實現這一目標的最簡單方法是什么?
查看完整描述

3 回答

?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

你不需要正則表達式*。簡單的子串和刪除可以做到這一點。

這是我快速提出的一些東西。


string test = "?9CZIA KUOTA PIV 1,21 SUMA 12,36 otóuka 2 | 0350 |tKasa 1";

test = test.Substring(test.IndexOf("SUMA ") + 5);

test = test.Remove(test.IndexOf(' '));  

可能會以某種方式簡化,但它確實有效。如果您需要結果實際是一種decimal類型,您當然需要轉換它。


*請注意,這并不能保證您會有一個數字(例如,如果您的輸入錯誤),因此您需要對其進行驗證。


由于您編輯了您的帖子以添加這樣一個事實,即在我發布答案后 SUMA 和數字之間可能有多個單詞,因此我不會在這里明確處理。在這種情況下,我認為正則表達式更有意義。


查看完整回答
反對 回復 2021-07-31
?
莫回無

TA貢獻1865條經驗 獲得超7個贊

如果 SUMA 和 number 之間可以有單詞,則可以匹配任何字符零次或多次非貪婪.*?,然后在一個組中捕獲(\d+,\d+)


SUMA.*? (\d+,\d+)


string pattern = @"SUMA.*? (\d+,\d+)";

string input = @"?9CZIA KUOTA PIV 1,21 SUMA test 12,36 otóuka 1,1 2 | 0350 |tKasa 1";

Regex r = new Regex(pattern);

Match match = r.Match(input);                

Console.WriteLine(match.Groups[1]); // 12,36


查看完整回答
反對 回復 2021-07-31
?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

使用代碼:


string str = "?9CZIA KUOTA PIV 1,21 SUMA 12,36 otóuka 2 | 0350 |tKasa 1";

int index = str.IndexOf("SUMA");

if (index > -1)

{

      str = str.Substring(index + 5);// SUMA + SPACE char == 4+1 = 5

      int inx = str.IndexOf(" ");

      if (index > -1)

      {

           str = str.Substring(0, inx);

           Console.WriteLine(str.Trim());

      }

}


查看完整回答
反對 回復 2021-07-31
  • 3 回答
  • 0 關注
  • 292 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號