【问题标题】:Java array fills, and values print. But, memory always prints afterJava 数组填充和值打印。但是,内存总是在之后打印
【发布时间】:2014-11-06 17:39:45
【问题描述】:

我的项目是接收并读取一个文件,然后将其内容加载到一个数组中,让用户更改它并从中查找内容。不过我的问题是,当我去搜索数组时,它总是会打印出内容以及存储在内存中的内容。我不知道如何阻止它,因为我不知道那是什么东西。这是它通过 Directory1@27391d 打印的内容。

 import java.io.File;
    import java.io.FileNotFoundException;
    import java.util.*;
    public class Directory1{


   private int size=0;
   private String[] dval;//Sting Array


   public Directory1(String directoryFileName){

    int size=0;//counter for the array Size
    int ct=0;//counter
    dval = new String[size];//New String array

    File file= new File(directoryFileName);

   try{
      Scanner insert = new Scanner(file);
      Scanner populate= new Scanner(file);//Scans File

      //Counts the amount of lines to get array size
      while(populate.hasNextLine()){
         String i= populate.nextLine();
         size++;
         }
         dval= new String[size];



      //Inserts values into the array
      for(int i=0;i<dval.length;i++){
         String j= insert.nextLine();
         dval[ct]= j;
         System.out.println(dval[ct]);
         ct++;


      }
      }catch(FileNotFoundException e) {
         e.printStackTrace();
      }
   }//End Constructor

} 当我使用它初始化它时,它总是打印出目录中的名称,但也会打印出 记忆中的东西。

public class Directory{ 
   public static void main(String[] args){

   Directory1 direct= new Directory1("directory.txt");
   System.out.println(direct);

}
}

【问题讨论】:

  • 一方面,数组在 Java 中不可调整大小;那么,你为什么不直接使用Files.readAllLines()

标签: java arrays memory java.util.scanner


【解决方案1】:

直接从构造函数打印可能不是一个好主意。但是打印Directory1@27391d 的原因是您正在尝试打印对象本身。你还没有覆盖toString(),所以你看到的是从the inherited toString() method from Object返回的String

换句话说,这个方法返回一个字符串等于:

getClass().getName() + '@' + Integer.toHexString(hashCode())

Directory1 中创建一个toString() 方法以覆盖ObjecttoString() 方法,并根据您在println 语句中尝试打印的内容创建一个String 并在该方法中返回它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多