将文件中的单词存储到Java字符串中

将文件中的单词存储到Java字符串中,java,arrays,Java,Arrays,我需要帮助构建一个数组,其中包含.txt文件的值 文本文件示例: this is the text file. 我希望阵列看起来像: Array[0]:This Array[1]:is etc.. 希望有人能帮助我,我熟悉如何打开、创建和读取文本文件,但目前仅此而已。一旦我能阅读数据,我就不知道如何使用/处理数据。这是迄今为止我所能建造的最大的一个 import java.util.*; import java.io.*; public class file { private Sca

我需要帮助构建一个数组,其中包含.txt文件的值

文本文件示例:

this is the text file.
我希望阵列看起来像:

Array[0]:This
Array[1]:is 
etc..
希望有人能帮助我,我熟悉如何打开、创建和读取文本文件,但目前仅此而已。一旦我能阅读数据,我就不知道如何使用/处理数据。这是迄今为止我所能建造的最大的一个

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

public class file {

private Scanner x;

    public void openFile(){
      try{
        x=new Scanner(new File("note3.txt"));
      }
      catch(Exception e){
        System.out.println("Could not find file"); }}



    public void readFile(){
      String str;

      while(x.hasNext()){
        String a=x.next();

        System.out.println(a);}}

    public void closeFile(){
      x.close();}}
单独的文件读取

    public class Prac33 {


    public static void main(String[] args) { 

     file r =new file();
        r.openFile();
        r.readFile();
        r.closeFile();
      }
    }

我希望将这些文件存储到一个数组中,以后可以使用该数组按字母顺序对文件进行排序。

您可以先将整个文件存储到一个字符串中,然后将其拆分:

    ...
    String whole = "";
    while (x.hasNext()) {
        String a = x.next();
        whole = whole + " " + a;
    }
    String[] array = whole.split(" ");
    ...
或者您可以使用ArrayList,这是一种“更清洁”的解决方案:

    ...
    ArrayList<String> words= new ArrayList<>();
    while (x.hasNext()) {
        String a = x.next();
        words.add(a);
    }
    //get an item from the arraylist like this:
    String val=words.get(index);
    ...
您可以添加到ArrayList,而不是System.out.printlna

然后,您可以使用以下方法将ArrayList转换为字符串数组:

String[] array = list.toArray(new String[list.size()]);
使用


使用bufferedReader对象迭代并读取文件中的行。使用StringTokenizer根据空空间标记并将其存储到阵列中的帖子。

以下是您可以执行的操作:

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

public class file {

private Scanner x;

public void openFile() {
    try {
        x = new Scanner(new File("note3.txt"));
    } catch (Exception e) {
        e.printStackTrace();
    }
}

public String[] readFile(String[] array) {
    long count = 0;
    while (x.hasNext()) {
        String a = x.next();
        array[(int) count] = a;
        System.out.println(a);
        count++;
    }
    return array;
}

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

数组的问题是,首先必须知道文本文件中有多少个单词。列表可能会更好。通过对文件进行排序,您是指单词还是句子?通过单词,我的目标是按字母顺序对文件中的所有单词进行排序,并删除Nessary中重复的单词。如果你从不同的角度看待这个问题,请告诉我。谢谢该文件具有什么类型的字符?只是字母呢?它只由单词组成,没有数字或符号。etcStringTokenizer多年来一直被弃用。扫描仪是正确的类别使用。感谢您的快速回复,我感谢您的时间。我尝试插入public void readFile{ArrayList words=new ArrayList;而x.hasNext{String a=x.next;words.adda;}但我得到一个错误,源代码级别低于1.7时不允许使用运算符?是的,这是因为低于V1.7的java不允许泛型参数推断。请将new ArrayList更改为new arrarylist
import java.util.*;
import java.io.*;

public class file {

private Scanner x;

public void openFile() {
    try {
        x = new Scanner(new File("note3.txt"));
    } catch (Exception e) {
        e.printStackTrace();
    }
}

public String[] readFile(String[] array) {
    long count = 0;
    while (x.hasNext()) {
        String a = x.next();
        array[(int) count] = a;
        System.out.println(a);
        count++;
    }
    return array;
}

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