日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

NET问答: 如何从 string 中挖出所有的 number ?

發布時間:2023/12/4 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NET问答: 如何从 string 中挖出所有的 number ? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

咨詢區

  • van:

我現在有一個需求,想從 string 中找到所有的 number 并提取出來。

舉例如下:

string?test?=?"1?hello" string?test1?=?"?1?world" string?test2?=?"helloworld?99"

請問我該如何做?

回答區

  • Tabares:

這個簡單,可以用正則表達式 Regex.Split 提取所有的 number,使用下面的代碼。

public?class?Program{static?void?Main(string[]?args){string?input?=?"There?are?4?numbers?in?this?string:?40,?30,?and?10.";//?Split?on?one?or?more?non-digit?characters.string[]?numbers?=?Regex.Split(input,?@"\D+");foreach?(string?value?in?numbers){if?(!string.IsNullOrEmpty(value)){int?i?=?int.Parse(value);Console.WriteLine("Number:?{0}",?i);}}}}
  • Ramireddy Ambati:

可以試著用 Regex.Matches 提取。

static?void?Main(string[]?args){string?input?=?"Hello?20,?I?am?30?and?he?is?40";var?numbers?=?Regex.Matches(input,?@"\d+").OfType<Match>().Select(m?=>?int.Parse(m.Value)).ToArray();foreach?(var?item?in?numbers){Console.WriteLine($"number:?{item}");}}
  • Thomas C. G. de Vilhena:

我寫了一個擴展方法可以提取出 string 中所有的正整數,方法如下:

public?static?class?StringExt{public?static?List<long>?Numbers(this?string?str){var?nums?=?new?List<long>();var?start?=?-1;for?(int?i?=?0;?i?<?str.Length;?i++){if?(start?<?0?&&?Char.IsDigit(str[i])){start?=?i;}else?if?(start?>=?0?&&?!Char.IsDigit(str[i])){nums.Add(long.Parse(str.Substring(start,?i?-?start)));start?=?-1;}}if?(start?>=?0)nums.Add(long.Parse(str.Substring(start,?str.Length?-?start)));return?nums;}}

然后像下面這樣調用

????????public?static?void?Main(string[]?args){var?input?=?"I?was?born?in?1989,?27?years?ago?from?now?(2016)";foreach?(var?item?in?input.Numbers()){Console.WriteLine($"number:?{item}");}}

點評區

從解答中再次看到了 正則 的強大威力,不得不服,不過這種需求可以簡單,也可以特別復雜,比如考慮下面的情況:

  • 小數 ? ? ?eg: 200.002,100.01

  • 負數 ? ? ?eg: -20.02,-10.0

當然都可以用相對復雜的正則寫出來,但現實中不得不考慮這些情況哈????????????

原文鏈接:https://stackoverflow.com/questions/4734116/find-and-extract-a-number-from-a-string

總結

以上是生活随笔為你收集整理的NET问答: 如何从 string 中挖出所有的 number ?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。