导入大量单词,我需要创建识别文件中每个单词的代码。我使用分隔符来识别每个单词的分隔但我收到一个被抑制的错误,表明不使用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);
}
}
答案 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扫描仪的一件好事就是自动跳过单词之间的空格,使其易于使用和识别单词。