Keane_T 2015-04-22 12:27 采纳率: 25%
浏览 3382

Java 方法调用,返回arraylist总为空问题

程序代码如下,例如namelist.txt文件里有两行名字为lisa,andy john,ann但是返回值总为空,是方法有问题还是调用有问题?还是返回值的位置问题?

返回arraylist是老师要求的,如果代码冗长繁琐请轻拍。。(不明白为什么粘贴上来这个样子,请见谅)

//读取CSV文件,并输出你所要查看的列数的内容
public class CSVParser extends ConsoleProgram {

public void run(){
ArrayList result = new ArrayList();
String filename = openfile("Enter the filename :");
int columnIndex = readInt("Enter the column index :");
result = extractColumn(filename,columnIndex);
println(result);
}
//读取文件,若文件不存在则提示,重新键入文件名
private String openfile(String prompt){
BufferedReader rd = null;
while(rd==null){
try{
String name = readLine(prompt);
rd = new BufferedReader(new FileReader(name));

}catch(IOException e){
println("bad file.The file doesn't exist.");
}
}
return getName();

}
//根据文件名和所要获取的列数输出该列所有内容
private ArrayList extractColumn(String filename, int columnIndex) {
ArrayList result = new ArrayList();
try {
BufferedReader rd = new BufferedReader(new FileReader(filename));
String line="";
while((line = rd.readLine()) != null){

String str = (fieldsIn(line).get(columnIndex-1));

result.add(str);

}rd.close();
}catch (IOException e){
e.printStackTrace();
}

return result;
}

//将line中的所有字段都整合到一个ArrayList上
private ArrayList fieldsIn(String line) {
ArrayList result = new ArrayList();
int num=0;
while(true){
num = line.indexOf(',');
if(num<=0){
result.add(line);break;
}
String str = line.substring(0, num);
line = line.substring(num+1);
result.add(str);

}

return result ;
}
}

  • 写回答

3条回答 默认 最新

  • 菩提九子 2015-04-22 13:07
    关注

    因为你调用的result是你新创建的,并没有把那个有参数的result拿来使用

    评论

报告相同问题?

悬赏问题

  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 opencv 无法读取视频
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了