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);
尽管我不得不承认,恐怖袋熊的解决方案要短得多,更干净。恐怖袋熊的解决方案要短得多,更干净-谢谢,但我也不喜欢捕捉控制业务逻辑的异常。恐怖袋熊的解决方案要短得多,更干净-谢谢,但我也不喜欢捕捉控制业务逻辑的异常。