-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;
}
}

そして2番目のクラス:

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

2 に答える 2

0

2番目のクラスでは、クラススコープで最初のクラスのメソッドを呼び出していますが、メソッドまたはメインで呼び出していません。これがあなたがそれをするべき方法です:

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配列を渡すことができるように、2番目のクラスのオブジェクトも作成する必要があります(そのため、私の回答のメソッドのシグネチャは異なります)。

于 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 に答える