Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基于标题拆分文本文件_Java_Text - Fatal编程技术网

Java 基于标题拆分文本文件

Java 基于标题拆分文本文件,java,text,Java,Text,我有一个文本文件,我只需要读取数字,然后用这些数字填充数组 LOCATION 6 7 POINT 8 9 JOBS 1 4 4 9 11 8 9 6 5 2 我知道如何读取文件,下面是我的代码,但我只是不知道如何只读取这些数字。我不知道如何正确使用拆分方法 BufferedReader objReader = null; try { String strCurrentLine; objReader = new

我有一个文本文件,我只需要读取数字,然后用这些数字填充数组

LOCATION
6     7
POINT
8     9
JOBS
1     4
4     9
11    8
9     6
5     2
我知道如何读取文件,下面是我的代码,但我只是不知道如何只读取这些数字。我不知道如何正确使用拆分方法

BufferedReader objReader = null;
   try {
      String strCurrentLine;

      objReader = new BufferedReader(new FileReader("D:\\Jobs.txt"));

   while ((strCurrentLine = objReader.readLine()) != null) {
    System.out.println(strCurrentLine); //test
   }

  } catch (IOException e) {

   e.printStackTrace();

  } 

首先,您必须拆分,然后测试是否为整数

while ((strCurrentLine = objReader.readLine()) != null) {
    String words [] = strCurrentLine.split ("\\s+");
    for (String word : words) {
        try {
            Integer.valueOf (word);
            System.out.println(word); 
        } catch NumberFormatException e { // do nothing}
    }
}

首先,您必须拆分,然后测试是否为整数

while ((strCurrentLine = objReader.readLine()) != null) {
    String words [] = strCurrentLine.split ("\\s+");
    for (String word : words) {
        try {
            Integer.valueOf (word);
            System.out.println(word); 
        } catch NumberFormatException e { // do nothing}
    }
}

当涉及到解释格式化数据时,我总是喜欢使用正则表达式:

String line;
StringBuilder builder = new StringBuilder();
while ((line = objReader.readLine()) != null) {
    builder.append("\n" + line);
}

objReader.close();

List<Integer> numbers = new ArrayList<Integer>();
Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher(builder.toString());
while (m.find()) {
    numbers.add(Integer.parseInt(m.group()));
}

numbers.stream().forEach(System.out::println);

尽管我不得不承认,Thrarry Wombat的解决方案更短更干净。

当涉及到解释格式化数据时,我总是喜欢使用正则表达式:

String line;
StringBuilder builder = new StringBuilder();
while ((line = objReader.readLine()) != null) {
    builder.append("\n" + line);
}

objReader.close();

List<Integer> numbers = new ArrayList<Integer>();
Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher(builder.toString());
while (m.find()) {
    numbers.add(Integer.parseInt(m.group()));
}

numbers.stream().forEach(System.out::println);
尽管我不得不承认,恐怖袋熊的解决方案要短得多,更干净。

恐怖袋熊的解决方案要短得多,更干净-谢谢,但我也不喜欢捕捉控制业务逻辑的异常。恐怖袋熊的解决方案要短得多,更干净-谢谢,但我也不喜欢捕捉控制业务逻辑的异常。