-2

我刚刚开始编写代码,我正在自己处理数组,我在理论上理解它们,但在实际操作时我需要一些帮助。我让我的导师给我几个练习题,他给了我以下内容。

使用这个作为你的主要:

public static void main(String[] args) {

DatosPalabras datos = new DatosPalabras( "words.txt" );

JOptionPane.showMessageDialog(null, datos );

datos.sort();

JOptionPane.showMessageDialog(null, datos);

} 

(它是西班牙语,所以请耐心等待)创建一个名为 DatosPalabras 和 words.txt 的类,并确保您的代码可以:

  • 阅读并显示words.txt
  • 按字母顺序显示“words.txt”中的单词

我真的很感谢你的帮助,我有点难过,但我很想知道我怎么能做到这一点。谢谢!

编辑:

    public class DatosPalabras {

public DatosPalabras(String string) {
    // read and display the content of words.txt


}

public void sort() {
    // need info on what to use in order to sort words instead of doubles and integers.

}

}
4

2 回答 2

0

您可以像这样创建一个阅读数组:

 String[] Array = new String[number of lines in you txt file];
       int i = 0;

           // Selecting the txt file
           File theFile = new File("bla.txt");
           //Creating a scanner to read the file
           scan = new Scanner(theFile);
           //Reading all the words from the txt file
       while (scan.hasNextLine()) {
        line = scan.nextLine();
           Array[i] = line; // gets all the lines
           i++;

然后创建一个排序方法。

于 2013-10-21T22:33:03.323 回答
0

在此示例中,我有 1 个名为 Q19505617.java 的文件。Java 只允许每个文件有 1 个公共类。它是定义主要方法的类。因此,此示例之所以有效,是因为该文件中包含 DatosPalabras 类。如果您需要 DatosPalabras 作为自己的类,则将 DatosPalabras 放在自己的名为 DatosPalabras.java 的文件中,并将类签名更改为public class DatosPalabras.

import java.io.InputStream;
import java.util.Arrays;
import java.util.Scanner;
import javax.swing.JOptionPane;

public class Q19505617 {
  public static void main(String[] args) {
    DatosPalabras datos = new DatosPalabras("words.txt");
    JOptionPane.showMessageDialog(null, datos);
    datos.sort();
    JOptionPane.showMessageDialog(null, datos);
  }
}

class DatosPalabras {
  private String[] lines;

  public DatosPalabras(String filename) {
    lines = new String[1];
    int lineCounter = 0;
    InputStream in = Q19505617.class.getResourceAsStream(filename);
    Scanner scanner = new Scanner(in);
    while (scanner.hasNextLine()) {
      String line = scanner.nextLine();
      System.out.println(line);
      if(lineCounter == lines.length) {
        lines = Arrays.copyOf(lines, lines.length * 2);
      }
      lines[lineCounter] = line;
      lineCounter++;
    }
  }

  public void sort() {
    // put your real sort algorithm here. until then use this:
  }

  public String toString() {
    StringBuilder b = new StringBuilder();
    for (String line : lines) {
      b.append(line).append("\n");
    }
    return b.toString();
  }
}
于 2013-10-21T22:52:11.807 回答