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