你好,我想读一个包含这样的单词对的文件file.txt ......
mot;word
oui;yes
utiliser;use
comment;how
在阅读这个file.txt后,我想拆分这个文本,把法语单词放在一个ArrayList中,将英文单词放在另一个ArrayList中。
提前致谢...
答案 0 :(得分:8)
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
List<String> frenchList = new ArrayList<String>();
List<String> englishList = new ArrayList<String>();
File file = new File("C:/dico.txt");
if(file.exists()){
try {
list = Files.readAllLines(file.toPath(),Charset.defaultCharset());
} catch (IOException ex) {
ex.printStackTrace();
}
if(list.isEmpty())
return;
}
for(String line : list){
String [] res = line.split(";");
frenchList.add(res[0]);
englishList.add(res[1]);
}
}
使用此代码,您可以在“frenchlist”列表中使用de french word,并在列表“englishlist”中使用英语单词
答案 1 :(得分:2)
这看起来像CSV文件。考虑使用CSV阅读器库。
使用JDK中的String#split函数并逐行读取文件Scanner:
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
// process the line using String#split function
}
在while
循环中,将拆分的数据添加到ArrayList
。
所有信息都已在stackoverflow上。
答案 2 :(得分:1)
首先,你必须创建两个数组列表..
ArrayList<String> english = new ArrayList<>();
ArrayList<String> french = new ArrayList<>();
然后,打开文件,逐行阅读,将其拆分为&#34;;&#34;并将这些单词添加到ArrayLists ...
try(BufferedReader in = new BufferedReader(new FileReader("file.txt"))){
String line;
while((line = in.readLine())!=null){
String[] pair = line.split(";");
french.add(pair[0]);
english.add(pair[1]);
}
}
答案 3 :(得分:0)
mot;word
oui;yes
utiliser;use
comment;how
看来每行的结构都是
frenchWord;englishWord
因此,您可以使用Scanner
(使用构造函数Scanner(File source)
)和nextLine()
方法阅读文件的每一行,并split
每行{{1 }}
数组中的第一个元素是法语单词,第二个元素是英语单词。