【问题标题】:Read a file and split lines in Java. [closed]在 Java 中读取文件并拆分行。 [关闭]
【发布时间】:2014-01-17 11:35:06
【问题描述】:

您好,我想读取一个文件,file.txt,其中包含这样的单词对...

mot;word 
oui;yes
utiliser;use
comment;how

读完这个 file.txt 后,我​​想把这个文本拆分,把法语单词放在一个 ArrayList 中,把英语单词放在另一个 ArrayList 中。

提前谢谢...

【问题讨论】:

  • 您为什么认为这与 Netbeans 有关?
  • 向我们展示到目前为止你在代码中得到了什么
  • 是用空格分隔的单词对吗?还是用新行分隔?

标签: java text file-io split


【解决方案1】:
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”中找到法语单词,在列表“englishlist”中找到英语单词

【讨论】:

    【解决方案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 上。

    【讨论】:

      【解决方案3】:
      mot;word 
      oui;yes
      utiliser;use
      comment;how
      

      看来每一行的结构都是

      frenchWord;englishWord
      

      因此,您可以使用Scanner(使用构造函数Scanner(File source))和nextLine() 方法读取文件的每一行,而split 每行通过";"

      数组中的第一个元素是法语单词,第二个元素是英语单词。

      将这些元素添加到两个单独的List(每个示例ArrayList)中,一个包含所有法语单词,另一个包含英语单词。

      【讨论】:

        【解决方案4】:

        首先,您必须创建两个数组列表..

            ArrayList<String> english = new ArrayList<>();
            ArrayList<String> french = new ArrayList<>();
        

        然后,打开文件,逐行读取,用“;”分割并将单词添加到 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]);
              }
            }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-09-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多