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 Stata 面板数据模型选择
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用