【问题标题】:find int in string在字符串中查找 int
【发布时间】:2012-05-03 01:35:41
【问题描述】:

好的,如果我有一个字符串输入“3 6”

如何将这两个 int 放入一个数组中?如果它们之间有多个空格怎么办?

假设我希望将这些数字放在像 {3, 6} 这样的数组中 那可能吗?谢谢

【问题讨论】:

  • 你使用什么语言?

标签: java arrays string input int


【解决方案1】:

试试这个,只要找到一个或多个空格的序列,就使用正则表达式拆分输入字符串,然后将生成的String[] 转换为int[]

String numberString = "  1   2 34    7 ";
String[] numbers = numberString.split("\\s+");
int[] ints = new int[numbers.length];
for (int i = 0; i < ints.length; i++)
    ints[i] = Integer.parseInt(numbers[i]);

现在ints 数组包含预期值:

System.out.println(Arrays.toString(ints));
> [1, 2, 34, 7]

【讨论】:

    【解决方案2】:
    Scanner sc = new Scanner(mString);
    while (sc.hasNextInt()){
        mArrayList.add(sc.nextInt())
    }
    

    然后只需将 ArrayList 转换回数组。

    【讨论】:

      【解决方案3】:

      例如,您可以使用 split 来解决您的问题:

      按空格分割的程序 [C#]

      static void Main()
      
      {
      string s = "1 3 2 7";
      //
      // Split string on spaces.
      // ... This will separate all the words.
      //
      string[] words = s.Split(' ');
      foreach (string word in words)
      {
          Console.WriteLine(word);
      }
      }
      

      输出

      1 3 2 7

      【讨论】:

      • 我认为他希望将它们作为整数,因此您需要在 C# 中将这些字符串解析为整数。
      • 但是对于@Leaf C. 问题是的,你是对的,我的样本需要转换。
      • 感谢您的帮助!但是如果我在这些数字之间有多个空格怎么办?我该怎么办?
      • 你最终会得到前面有空格的数字。 Java中有一个用于字符串的修剪功能。我不记得它了,但你可以找到它。拆分后会去掉多余的空格。
      • @Leaf C. 但是你不使用 java
      【解决方案4】:
      $string = "3 6 4 879";
      preg_match_all('/\d+(?=\s*)/', $string, $arr);
      

      这是一种 PHP 方式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-24
        • 2011-01-11
        • 2011-07-13
        • 2014-03-26
        • 2016-01-26
        • 2014-02-04
        相关资源
        最近更新 更多