2016-06-11 41 views
0

免責聲明:我使用this Post,作爲List<Object>List<String>this Post字符串的Java的List<String>參考JavaScript數組。轉換列表<Object>爲字符串返回空結果

我已經List<Seat>,我想在分離String逗號這一切的價值觀,我想用這種方式

import java.util.*; 
import java.lang.*; 

class Rextester 
{ 

    public Rextester(){ 
     Seat seat1 = new Seat(); 
     seat1.setSeatNumber(1); 

     Seat seat2 = new Seat(); 
     seat2.setSeatNumber(2); 

     Seat seat3 = new Seat(); 
     seat3.setSeatNumber(3); 


     List<Seat> seatList = new ArrayList<Seat>(); 
     seatList.add(seat1); 
     seatList.add(seat2); 
     seatList.add(seat3); 
     Utility util = new Utility(); 
     String stringSeats = util.toJavascriptArray(seatList); 
     System.out.println("JavaScriptArray is " + stringSeats); 
    } 

    public static void main(String args[]) 
    { 
     new Rextester(); 

    } 



    private class Seat { 

     private Integer seatNumber;   

     public Integer getSeatNumber() { 
      return this.seatNumber; 
     } 

     public void setSeatNumber(Integer seatNumber) { 
      this.seatNumber = seatNumber; 
     } 
     public String toString() { 
      return ""+ seatNumber; 
     } 
    } 

    private class Utility { 

     public String toJavascriptArray(List<Seat> listSeats){ 
      List<String> strings = new ArrayList<String>(); 
      for (Seat object : listSeats) { 
       strings.add(object != null ? object.toString() : null); 
      } 
      String[] arr = new String[strings.size()]; 
      arr = strings.toArray(arr); 
      StringBuffer sb = new StringBuffer(); 
      sb.append("["); 
      for(int i=0; i<arr.length; i++){ 

       if(i+1 < arr.length){ 
        sb.append(","); 
       } 
      } 
      sb.append("]"); 
      return sb.toString(); 
     } 
    } 
} 

,但是這給了我

JavaScriptArray is [,,] 
控制檯上

,我犯了些什麼錯誤?在線工作代碼爲http://rextester.com/NDUGT61105

+0

一切都是正確的..除了實際上在'toJavascriptArray(名單 listSeats)'方法......你不是活得在那裏添加字符串...只是一個逗號 – 3kings

+0

因此,在那裏添加...'sb.append(arr [i]);' – 3kings

回答

2

你沒有追加迭代元素,見下文

 for (int i = 0; i < arr.length; i++) { 
      sb.append(arr[i]); // add this 
      if (i + 1 < arr.length) { 
       sb.append(","); 
      } 
     } 

看看toString的實現ArraysList

只要你可以返回

strings.toString() 

Arrays.toString(arr) 

要獲得期望的結果

+0

好的,這是我失蹤[增加](http://rextester.com/DGZH57765)問題解決的問題。 –

0

你忘了追加數組元素的字符串緩衝區! 添加

sb.append(arr[i]); 

內循環,你準備字符串緩衝區和一切正常