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

时间:2011-07-24 08:58:07

标签: java arrays

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

    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,但我无法得到我追求的结果。

为了清晰起见而编辑 对不起,你是对的,有点不清楚。

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

这才是真正的问题。至于方法和课程,我还在学习方法,调用和调用它们,所以我会回去研究一下自己。

4 个答案:

答案 0 :(得分:0)

你可以制作一个二维数组,并将[i] [0]中的对象和你想在[i] [1]中调用的“字符串”存储起来。

答案 1 :(得分:0)

如果我理解正确,您希望能够从字符串中读取对象。 如果是这种情况,那么您要做的就是Serialization,这里是simple example

答案 2 :(得分:0)

只需创建第二个数组或String类型列表,然后使用String.valueOf(...)遍历第一个数组,将对象存储为新容器中的字符串。

答案 3 :(得分:0)

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()