【问题标题】:Java how to parse integers with spacesJava如何解析带空格的整数
【发布时间】:2014-04-23 08:15:14
【问题描述】:

我有一个字符串,实际上用户在控制台中输入了下一个字符串:

10 20 30 40 50

如何将其解析为int[]

我尝试使用Integer.parseInt(String s); 并使用String.indexOf(char c) 解析字符串,但我认为这太糟糕了。

【问题讨论】:

  • 你可以粘贴 stact 跟踪或一些错误或结果
  • 我想你是在问一些直接的方法吧?
  • 没有错误。我只是在寻找解决方案..
  • @ambarox 老实说,我会投票给那个作为这个的复古副本;埃文的答案比那里的任何答案都要好。

标签: java


【解决方案1】:

您可以使用Scanner.nextInt(),也可以对字符串使用.split() 命令将其拆分为字符串数组并分别解析。

例如:

Scanner scanner = new Scanner(yourString);
ArrayList<Integer> myInts = new ArrayList<Integer>();
while (scanner.hasNextInt()) {
  myInts.add(scanner.nextInt());
}

对于split

String[] intParts = yourString.split("\\s+");
ArrayList<Integer> myInts = new ArrayList<Integer>();

for (String intPart : intParts) {
  myInts.add(Integer.parseInt(intPart));
}

【讨论】:

  • 你能给我举个例子吗?
  • @deathember ScannerString.split() 的文档中有您正在寻找的示例。
  • 我已经为两者添加了示例。
  • @EvanKnowles 不要忘记split() 的参数。 split(" ") 简单明了,split("\\s+") 更健壮。
【解决方案2】:
  1. 使用带有分隔符空格的String#split() 方法拆分字符串。
  2. 对于String[] 中的每个元素,使用Integer.parseInt() 将其解析为int,并将它们添加到您的int[]

【讨论】:

    【解决方案3】:
    String split[] = string.split(" ")
    

    is 将生成一个字符串数组,然后您可以将数组解析为 int。

    【讨论】:

      【解决方案4】:

      拆分字符串然后解析整数,如下函数:

      int[] parseInts(String s){
          String[] sNums = s.split(" ");
          int[] nums = new int[sNums.length];
          for(int i = 0; i < sNums.length; i++){
              nums[i] = Integer.parseInt(sNums[i);
          }
          return nums;
      }
      

      【讨论】:

        猜你喜欢
        • 2021-11-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-15
        • 2018-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-17
        相关资源
        最近更新 更多