2011-07-24 39 views
0

我有一個不同數據類型的對象數組我想能夠將數組的對象存儲爲一個字符串,以便以後可以使用它不同的方法。如何將對象類型的數組作爲字符串存儲,以便其他類以後可以調用並打印該字符串。 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]); 
} 

} 所以很容易只打印陣列了,但我怎麼了存儲爲一個字符串後調用它。
我一直堅持這幾個小時了。我看着使用stringbuilder,但我無法得到我以後的結果。

編輯爲清晰 對不起,你是正確的,這是有點不清楚。

我想要的是聲明一個空字符串並將數組的內容保存到該字符串。但是當我嘗試做這個日食告訴我。 「類型不匹配:無法從音樂轉換爲字符串」

所以這是真正的問題。至於方法和類位,我仍然在學習方法,並調用和調用它們,所以我會回頭研究一下自己。

+0

請您詳細說明一下,或者讓這個更清楚些,我不確定你想要什麼。 –

+0

「以後再打電話」是什麼意思? –

+0

您是否想創建對象狀態的字符串表示以將其傳遞給另一個方法?爲什麼你不能簡單地傳遞對象本身? – home

回答

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);由於StringBuilder會自動調用toString()如果一個未知的對象被傳遞。

+0

偉大的我認爲這是我需要的。似乎工作就像一個想要感謝一個簡短的問題。你有沒有把「一些分隔符」行放在一段顯示如何格式化字符串? – Bradley

+0

@Bradley:是的,我認爲你可能希望有一個分隔符來區分不同的歌曲。你可能想用換行符('\ n')或分號替換它。 – home

+0

謝謝我可能會使用換行符。感謝您花時間回覆。 – Bradley

0

您可以製作一個二維數組並存儲[i] [0]中的對象和要在[i] [1]中調用的「字符串」。

0

如果我理解正確,您希望能夠從字符串中讀取對象。 如果是這樣的話,你正在試圖做所謂Serialization,這裏是一個simple example

0

只需創建一個String類型的第二陣列或列表,並使用String.valueOf(...)存儲對象作爲字符串的第一個陣列上迭代在新的容器中。

相關問題