【问题标题】:looping through a .txt file in an array JAVA循环遍历数组 JAVA 中的 .txt 文件
【发布时间】:2018-09-02 22:54:45
【问题描述】:
public class ThreeSum {

public static int count(int[] a) {
    int n = a.length;
    int count = 0;
    for (int i = 0; i < n; i++) {
        for (int j = i+1; j < n; j++) {
            for (int k = j+1; k < n; k++) {
                if (a[i] + a[j] + a[k] == 0) {
                    count++;
                }
            }
        }
    }
    return count;
} 


public static void main(String[] args)  { 

    In input = new In("input.txt");
    int [] a = input.readInts(args[0]);
    StdOut.println(count(a));
} } 

这是我的代码。我正在尝试读取包含随机数的文本文件,但每次运行它时,我都会说要创建类 In 和类 StdOut。有没有更简单的方法来运行这个文件?

【问题讨论】:

  • 在,StdOut 不是 Java 内置类,它们不存在这就是为什么,所有的数字都在一行上?还是每行一个?

标签: java arrays algorithm data-structures text-files


【解决方案1】:

你可以使用

BufferedReader input = new BufferedReader(new FileReader("input.txt"));

获取输入。 Java 的控制台不称为 StdOut,因此编译器会告诉您创建该类。要打印到 Java 控制台,您可以使用

System.out.println(a);

【讨论】:

    【解决方案2】:

    您似乎正在学习普林斯顿的编程课程。如果是这种情况,您需要仔细阅读说明。

    在这个页面https://introcs.cs.princeton.edu/java/stdlib/你可以找到描述:

    类路径。stdlib.jar 放在与您正在编写的程序相同的目录中(但不要解压缩它)。然后,编译并执行为 如下:

    OS X / Linux

    % javac -cp .:stdlib.jar MyProgram.java
    % java  -cp .:stdlib.jar MyProgram
    

    窗口

    % javac -cp .;stdlib.jar MyProgram.java
    % java  -cp .;stdlib.jar MyProgram
    

    stdlib.jar 包含 InStdOut 等类的 .java 和 .class 文件。

    【讨论】:

      【解决方案3】:

      这将逐行读取您的文件

      public static void main(String[] args) throws IOException {
          Path p = Paths.get("/Users/ay/Desktop/tx1.txt");
          try(Stream<String> lins = Files.lines(p)) {
              lins.forEach(System.out::println);
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2021-12-09
        • 1970-01-01
        • 2019-05-05
        • 2016-05-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-21
        相关资源
        最近更新 更多