【问题标题】:C# get sequences of numbers from string containing numbers and words?C# 从包含数字和单词的字符串中获取数字序列?
【发布时间】:2014-03-01 01:42:59
【问题描述】:

给定一个字符串,如“15 个点中的 10 个”或“1 个点中的 0 个”,我将如何获得一个变量中的第一个数字和第二个变量中的第二个数字?

【问题讨论】:

  • 你想要第一个数字还是第一个字符?
  • 我不确定你在问什么。在上面的示例中,我想为第一个示例获取数字 10 和 15,为第二个示例获取 0 和 1。
  • 例如,如果您的字符串是“foo 90 70”,您仍然想要“90”还是想要“fo”?
  • 我想这就是你想要的。如果您只想获取前 2 个字符,即“fo”,则可以 .SubString() 它。

标签: c# string substring


【解决方案1】:

您可以使用SplitLINQ

var str = "10 of 15 points";
var numbers = str.Split().Where(x => x.All(char.IsDigit))
              .Select(x => int.Parse(x)).ToList();

这将返回一个包含1015List<int>

【讨论】:

  • 这就像一个魅力。您使用var 而不是string 有什么原因吗?
  • @Keavon 如果你使用字符串,我敢肯定你做不到。
  • @Keavon 不,但我通常使用var,它更短且易于使用。它让生活变得更加轻松,尤其是在使用长类型名称时:)
  • @Dozer789 我认为他的意思是第一个变量(str)
  • 这是一个很好的提示。
【解决方案2】:
var temp = "10 of 15 points".Split(" ");

var num1 = int.Parse(temp[0])
var num2 = int.Parse(temp[2])

【讨论】:

    猜你喜欢
    • 2022-06-27
    • 2023-02-22
    • 1970-01-01
    • 1970-01-01
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-14
    相关资源
    最近更新 更多