将返回的数组用于另一个操作

时间:2013-03-03 16:13:49

标签: java arrays return

我已经将文件中的文本读入数组。我想在另一个类中迭代这个数组(反转数组并查找每个第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
    }
}

2 个答案:

答案 0 :(得分:0)

在你的第二个类中,你在类范围内调用第一个类方法,你不是在方法或主要方法中调用它。这是你应该怎么做的:

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数组(这就是为什么我的答案中方法的签名是不同的)。

答案 1 :(得分: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上提问。