-5

我已将文件中的文本读入数组。我想在另一个类中遍历这个数组(反转一个数组并找到每 5 个元素)。我在另一个类中使用这个数组时遇到问题 - 这个类看不到数组。有人可以帮我吗?

package iterators;
import java.util.*;
import java.io.*;
import iterators.*;

public class Dunno{
    int i = 1;
    String[] something() throws IOException {
        BufferedReader read = new BufferedReader(new FileReader("file.txt"));
        StringBuilder sb = new StringBuilder();
        String text = read.readLine();
        while (text != null) {
            sb.append(text);
            sb.append("\n");
            text = read.readLine();
        }
        String all = sb.toString();
        String film = all;
        String znak = ",";
        String[] tab;
        tab = film.split(znak);
        for (i = 0; i < tab.length; i++) {
            System.out.println(tab[i]);
        }
        return tab;
}
}

第二类:

public class Dunno1{
    Dunno dunn=new Dunno();
    dunn.something();
    public String dunn(){
    //Iterate
    }
}
4

2 回答 2

0

在您的第二个类中,您在类范围内调用第一个类方法,而不是在方法或 main 中调用它。这是您应该如何做的:

public class Dunno1 {

    public static void main(String[] args) throws IOException {
        Dunno1 d1 = new Dunno1();
        Dunno dunn = new Dunno();
        String[] d = dunn.something();
        d1.dunn(d);
    }

    public String dunn(String [] d) {
        return null;
        // Iterate
    }
}

您还需要构造第二类的对象,以便可以调用 dunn 方法并将您从第一类获得的 String 数组传递给它(这就是为什么我的答案中方法的签名不同的原因)。

于 2013-03-03T16:29:30.927 回答
0
public class Dunno1{
    Dunno dunn=new Dunno();
    dunn.something();
    public String dunn(){
    //Iterate
    }
}

上面没有编译,因为你不能直接在类中执行指令。类必须包含字段声明、构造函数和方法。但不是指令。

以下将编译:

public class Dunno1{
    public void foo() { 
        Dunno dunn = new Dunno();
        String[] array = dunn.something();
        // iterate over the array.   
    }
}

这是真正的基本知识,您应该通过阅读 Java 书籍或教程来学习。不是通过在 StackOverflow 上提问。

于 2013-03-03T16:32:03.667 回答