繁体   English   中英

如何将对象类型的数组存储为字符串,以便另一个类以后可以调用并打印该字符串。 爪哇

[英]How to store an array of object types as a string so another class can later call and print that string. java

我有一个具有不同数据类型的不同对象的数组,我希望能够将该数组的对象存储为字符串,以便以后可以使用其他方法。

    import java.util.Arrays;


     public class Music {

    private  String songTitle;
    private  double songLength;
    private  int rating;


public Music(String songTitle, double songLength, int rating) {
       this.songTitle = songTitle;
       this.songLength = songLength;
       this.rating = rating;
    }
public  String getsongTitle()
{
    return songTitle;
}
public  double getsongLength()
{
    return songLength;
}
public    int rating()
{
    return rating();
}
  @Override
    public String toString() {

return "music{"+ "songTitle= " + songTitle + ", songLength=  "
+ songLength + ",rating=" + rating + '}';
   }
           //constructors for music objects

static Music song1 = new Music ("song name", 5.32, 10);
static Music song2 = new Music ("billy",1.2, 8 );
static Music song3 = new Music ("hello", 1.5, 9 );
static //Create array and make posistion 0 = song1

Music[] songDetails ={song1,song2,song3};


public static void main(String[] args) {

      System.out.println(Arrays.toString(songDetails));
      System.out.println(songDetails[0]);
}

}因此,只打印数组就很容易了,但是如何将其存储为String以便以后调用。
我已经坚持了几个小时。 我研究过使用stringbuilder,但无法获得想要的结果。

为清晰起见进行编辑很抱歉,您俩都说得有些不清楚。

我想要的是声明一个空字符串,并将数组的内容保存到该字符串。 但是当我尝试这样做时,月食会告诉我。 “类型不匹配:无法从音乐转换为字符串”

这就是真正的问题。 至于方法和类,我仍然在学习方法,调用并调用它们,所以我会回去研究一下自己。

您可以创建2D数组,然后将对象存储在[i] [0]中,并将要调用的“字符串”存储在[i] [1]中。

如果我对您的理解正确,那么您希望能够从字符串中读取对象。 如果是这种情况,您要尝试的操作称为序列化 ,这是一个简单的示例

只需创建第二个数组或String类型的列表,然后使用String.valueOf(...)在第一个数组上进行迭代即可将对象作为String存储在新容器中。

StringBuilder sb = new StringBuilder();
sb.append(song1.toString());
sb.append(" some delimiter ");
sb.append(song2.toString());

System.err.println(sb.toString());

那是你需要的吗?

编辑:有可能以这种方式做sb.append(song1); 因为如果传递了未知的Object,StringBuilder将自动调用toString()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM