识别文件中的每个单词

时间:2014-07-15 13:17:24

标签: java arraylist import bufferedreader filereader

导入大量单词,我需要创建识别文件中每个单词的代码。我使用分隔符来识别每个单词的分隔但我收到一个被抑制的错误,表明不使用linenumber和delimiter的值。我需要做什么才能让程序读取该文件并分离该文件中的每个单词?

public class ASCIIPrime {
    public final static String LOC = "C:\\english1.txt";

    @SuppressWarnings("null")
    public static void main(String[] args) throws IOException {

        //import list of words 
        @SuppressWarnings("resource")
        BufferedReader File = new BufferedReader(new FileReader(LOC)); 

        //Create a temporary ArrayList to store data
        ArrayList<String> temp = new ArrayList<String>();

        //Find number of lines in txt file
        String line;
        while ((line = File.readLine()) != null)
        {
            temp.add(line);
        }

        //Identify each word in file
        int lineNumber = 0; 
        lineNumber++;
        String delimiter = "\t";

        //assess each character in the word to determine the ascii value 
        int total = 0; 
        for (int i=0; i < ((String) line).length(); i++)
        {
            char c = ((String) line).charAt(i);
            total += c;
        }

        System.out.println ("The total value of " + line + " is " + total); 
    }
}

3 个答案:

答案 0 :(得分:1)

这闻起来像家庭作业,但还好。

  

导入大量单词,我需要创建识别文件中每个单词的代码。我需要做什么才能让程序读取该文件并分离该文件中的每个单词?

你需要......

  • 阅读文件
  • 将这些字词与您在
  • 中阅读的内容分开
  • ......之后我不知道你想和他们做什么。我只是把它们放到一个大清单中。

我的主要方法的内容是......

BufferedReader File = new BufferedReader(new FileReader(LOC));//LOC is defined as class variable

//Create an ArrayList to store the words
List<String> words = new ArrayList<String>();

String line;
String delimiter = "\t";
while ((line = File.readLine()) != null)//read the file
{
    String[] wordsInLine = line.split(delimiter);//separate the words
    //delimiter could be a regex here, gotta watch out for that
    for(int i=0, isize = wordsInLine.length(); i < isize; i++){
        words.add(wordsInLine[i]);//put them in a list
    }
}

答案 1 :(得分:0)

您可以使用String类的split方法

String[]    split(String regex) 

这将返回一个字符串数组,您可以直接处理这些字符串转换为您可能需要的任何其他集合。

除非你确定自己在做什么,否则我建议你除去抑制警告。在大多数情况下,最好除去警告的原因而不是压制警告。

答案 2 :(得分:0)

当我开始阅读文件时,我使用了来自newboston的这个很棒的教程:https://www.youtube.com/watch?v=3RNYUKxAgmw

此视频似乎非常适合您。它介绍了如何保存数据的文件字。只需将字符串数据添加到ArrayList即可。这是您的代码应该是什么样的:

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

public class ReadFile {

    static Scanner x;
    static ArrayList<String> temp = new ArrayList<String>();

    public static void main(String args[]){
        openFile();
        readFile();
        closeFile();
    }

    public static void openFile(){
        try(
            x = new Scanner(new File("yourtextfile.txt");
        }catch(Exception e){
            System.out.println(e);
        }
    }

    public static void readFile(){
        while(x.hasNext()){
            temp.add(x.next());
        }
    }

    public void closeFile(){
        x.close();
    }
}

使用java util扫描仪的一件好事就是自动跳过单词之间的空格,使其易于使用和识别单词。