簡體   English   中英

Java:從Arraylist獲取字符串

[英]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

這種混淆可能是由於使用非描述性變量名稱引起的。 例如,我看到arrayarraylist - 那些應該是相同的?

所以第一個問題就是清理一些代碼。 如果那不是確切的代碼,那么告訴我們是什么。 另請注意,您可以通過縮進所有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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM