[英]Java: Getting A String From An Arraylist
當我使用for循環時(如此:)
StringBuilder string = new StringBuilder();
for(int i1 = 0; i1 < array.size()){
string.append(arraylist.get(i).toString());
}
我得到了outOfBouds崩潰。 我需要按對象讀取arraylist對象,所以arraylist.toString()
沒有用。
任何幫助? 謝謝
您需要增加循環控制變量。
for(int i=0; i<arraylist.size();i++){
string.append(arraylist.get(i).toString());
}
要么
for(Object str:arraylist){
string.append(str.toString());
}
你在循環中使用i1
,但是你正在訪問元素i
。
這種混淆可能是由於使用非描述性變量名稱引起的。 例如,我看到array
和arraylist
- 那些應該是相同的?
所以第一個問題就是清理一些代碼。 如果那不是確切的代碼,那么告訴我們是什么。 另請注意,您可以通過縮進所有4個空格來創建代碼塊。 也是一個好主意,向我們展示堆棧跟蹤是什么。
理想情況下,我們可以編譯的小型完整程序向我們顯示錯誤,這將產生最快的糾正答案。 您甚至可以在創建該小程序時發現問題。
只需三行代碼就有很多錯誤。 真。 試試這個:
StringBuilder string = new StringBuilder();
for (int i1 = 0; i1 < arraylist.size(); i1++) {
string.append(arraylist.get(i1).toString());
}
或這個:
StringBuilder string = new StringBuilder();
for (Object str : arraylist ) {
string.append(str.toString());
}
我這樣寫:
public static String concat(List<String> array, String separator) {
StringBuilder builder = new StringBuilder(1024);
for (String s : array) {
build.append(s).append(separator);
}
return builder.toString();
}
您是否考慮過如何在連接版本中將每個字符串分開? 想要在每個之間留一個空間嗎? 這看起來不太有用。
如果您使用任何類型的Object,則必須覆蓋toString()方法。 並提供要在其中追加String的String。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.