为了账号安全,请及时绑定邮箱和手机立即绑定

获取 null 作为数组的输出

获取 null 作为数组的输出

幕布斯7119047 2021-10-28 09:22:24
import java.util.*;public class a{   public static void main(String[] args) throws FileNotFoundException {    Scanner sc = new Scanner(new File ("master file.txt"));    String[] ids = new String[100];    System.out.println(ids);while(sc.hasNext()) {    int i = 0;    ids[i] = sc.next();    i++;}我试图将数据从文件放入数组。我总是得到一个空值作为输出。我想不通为什么。这一直非常令人紧张。
查看完整描述

2 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

  1. 在用元素填充数组之前,您正在打印数组。

  2. 您的计数器在循环的每次迭代中都i重置为。虽然使用具有固定数量元素的数组来读取未知长度的文本不是一个好主意,但还是使用一些动态数组,例如.0whileArrayList

  3. 确保您提供了正确的.txt文件路径。

所以你的代码可能是这样的:

   Scanner sc = new Scanner(new File ("C:/correct/path/to/file/master_file.txt")); 


    List<String> listOfStrings = new ArrayList<String>(); 


        while(sc.hasNextLine()) {


           listOfStrings.add(sc.nextLine());


        }


    System.out.println(listOfStrings);


查看完整回答
反对 回复 2021-10-28
?
噜噜哒

TA贡献1784条经验 获得超7个赞

输出为空,因为在尝试打印数组之前您从未分配过任何数组。我还将 i 移到循环之外,因此每次都不会重新初始化。此外,由于 ids 是一个数组,您需要使用 Arrays.toString(ids) 来打印它,或者您只需获取对象 id。


public static void main(String[] args) throws FileNotFoundException {

    String[] ids = new String[100];  //array to store lines

    int i = 0;  // line index

    try (Scanner sc = new Scanner(new File ("master file.txt"))) { // try resource

        while(sc.hasNextLine()) { // check for next line

            ids[i] = sc.nextLine(); // store line to array index

            i++;  // increment index

        }

    }

    System.out.println(Arrays.toString(ids));  //print output.

}


查看完整回答
反对 回复 2021-10-28
  • 2 回答
  • 0 关注
  • 168 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信