多任务:从字符串中解析空格分隔的整数

时间:2014-10-31 08:28:51

标签: java string parsing split int

我的任务有问题。

我的工作是

  • 从文件中抓取String(在源文件中是一行中的数字,除以空格)
  • 按空格分割该字符串
  • 然后将每个String解析为int
  • 最后在它们上使用bubbleSort。

我一直坚持解析,不知道该怎么做。

代码atm看起来像这样:

public class Main
{
    public static void main(String[] args) throws IOException
    {
        String numbers = new String(Files.readAllBytes(Paths.get("C:\\README.txt")));
        String s[] = numbers.split(" ");
        for (String element : s)
        {
           System.out.println(element);
        }
    }
}

我尝试使用扫描程序读取字符串数字,然后将其循环为parseInt,但对我不起作用。

2 个答案:

答案 0 :(得分:2)

您要查找的方法是Integer#parseInt()

使用 Java 8 时,您可以使用Stream API,如下所示:

final List<Integer> intList = new LinkedList<>();

try {
    Files.lines(Paths.get("path\\to\\yourFile.txt"))
        .map(line -> line.split(" "))
        .flatMap(Stream::of)
        .map(Integer::parseInt)
        .forEach(intList::add);
} catch (IOException ex) {
    ex.printStackTrace();
}

没有溪流:

final List<Integer> intList = new LinkedList<>();

try {
    for (String line : Files.readAllLines(Paths.get("path\\to\\yourFile.txt"))) {
        for (String numberLiteral : line.split(" ")) {
            intList.add(Integer.parseInt(numberLiteral));
        }
    }
} catch (IOException ex) {
    ex.printStackTrace();
}

答案 1 :(得分:0)

你可以试试这个:

  public class Main
  {
      public static void main(String[] args) throws IOException
      {
          String numbers = new String(Files.readAllBytes(Paths.get("C:\\README.txt")));
          String s[] = numbers.split(" ");
          for (String element : s)
          {
             int number = Integer.valueOf(element)  // transform String to int 
             System.out.println(number);
          }
      }
  } 

我认为一个想法是将整个String-Array转换为int-arrayList of Integers

这可以用这种方法完成(几乎和上面一样):

  private List<Integer> transformToInteger(final String[] s) {
      final List<Integer> result = new ArrayList<Integer>();
      for (String element : s)
      {
        final int number = Integer.valueOf(element);
        result.add(number);
      }
      return result;
    }

现在您可以在此结果列表上执行冒泡排序。