如何从Java中的txt文件中提取单词

时间:2015-12-14 07:08:44

标签: java arrays

所以我必须从文本文件中提取数据。

文本文件设置如下。

3400      Moderate
310       Light
etc.

我需要提取数字,将它们存储在一个数组和字符串中,然后将它们存储在另一个数组中,这样我就可以根据数组中写入的数字对数字进行计算,然后将其输出到文件中。我已经完成了最后一部分,当我从txt中提取数据时,我无法弄清楚如何将int与字符串分开。文件。

以下是我现在所拥有的内容,但它只是将int和单词解压缩为String

import java.io.*;
import java.util.*;

public class HorseFeed {
public static void main(String[] args){

    Scanner sc = null;
    try {
        sc = new Scanner(new File("C:\\Users\\Patric\\Desktop\\HorseWork.txt"));
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    List<String> lines = new ArrayList<String>();
    while (sc.hasNextLine()) {
      lines.add(sc.nextLine());
    }

    String[] arr = lines.toArray(new String[0]);

    for(int i = 0; i< 100; i++){
        System.out.print(arr[i]);
    }

}

}

4 个答案:

答案 0 :(得分:1)

$("#profile-form").validate({ rules: { name: { required: true, nowhitespace: true, lettersonly: true }, 'files[]': { required: true, }, }, messages: { name: { required: 'Please enter your first name', }, 'files[]': { required: 'Please insert your 5 images', }, } }); 课程中使用split(String regex)。设置正则表达式以搜索空格或数字。它将返回包含单词的String

如果你要逐行分析它,你会想要另一个String[],你可以在其中附加新行中的所有单词。

答案 1 :(得分:1)

plz,请遵守代码。

import java.io.*;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class HorseFeed {

    public static void main(String[] args) throws FileNotFoundException, IOException {

        List<String> lineList = new ArrayList<String>();
        BufferedReader br = new BufferedReader(new FileReader(new File("C:\\Users\\Patric\\Desktop\\HorseWork.txt")));
            String line;
            while ((line = br.readLine()) != null) {
                Pattern pattern = Pattern.compile("[0-9]+");
                Matcher matcher = pattern.matcher(line);
                if( pattern.matcher(line).matches()){  
                    while(matcher.find()){
                        lineList.add(matcher.group());
                    }

                }
            }
        }

    }

这里lineList包含你的整数。

答案 2 :(得分:0)

这应该有效:

import java.io.*;
import java.util.*;

public class HorseFeed {

    public static void main(String[] args) throws FileNotFoundException {
        List<Integer> intList = new ArrayList<Integer>();
        List<String> strList = new ArrayList<String>();

        Scanner sc = new Scanner(new File("C:\\Users\\Patric\\Desktop\\HorseWork.txt"));
        while (sc.hasNextLine()) {
            String line = sc.nextLine();
            String[] lineParts = line.split("\\s+");
            Integer intValue = Integer.parseInt(lineParts[0]);
            String strValue = lineParts[1];
            intList.add(intValue);
            strList.add(strValue);
        }

        System.out.println("Values: ");
        for(int i = 0; i < intList.size(); i++) {
            System.out.print("\t" + intList.get(i) + ": " + strList.get(i));
        }
    }

}   

答案 3 :(得分:0)

首先提取文件的所有文本并将其存储到String中。然后使用带有模式的字符串类的replaceall方法从中删除数字。 示例 -

String fileText = new String(&#34; welcome 2 java&#34;);

fileText = fileText.replaceAll(&#34; - ?\ d +&#34;,&#34;&#34;);

的System.out.println(SS);