[英]Converting List<Object> to String returns empty results
免責聲明 :我使用此Post ,作為
List<Object>
到List<String>
引用,以及此Post的JavaList<String>
字符串到JavaScript數組的引用。
我有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
您沒有附加迭代元素,請參見下文
for (int i = 0; i < arr.length; i++) {
sb.append(arr[i]); // add this
if (i + 1 < arr.length) {
sb.append(",");
}
}
看看Arrays
和List
的toString
實現
只需返回即可
strings.toString()
要么
Arrays.toString(arr)
獲得預期的結果
另一個選擇,如果您使用的是Java 8,則使用StringJoiner:
https://docs.oracle.com/javase/8/docs/api/java/util/StringJoiner.html
您忘記了將數組元素附加到字符串緩沖區! 加
sb.append(arr[i]);
在准備字符串緩沖區的循環內,一切正常
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.