簡體   English   中英

將元素添加到列表中,並用冒號“:”(而不是逗號)分隔每個元素

[英]Add elements to a list and separate each element by a colon “:” instead of a comma

我有以下三個要素:

play_full_NAME=556677

pause_full_NAME=9922

stop_full_NAME=112233

字符串"abc"從特定代碼中一個接一個地返回所有上述三個元素。

我試圖將所有三個元素添加到由冒號“:”分隔的列表中

樣本輸出:

play_full_NAME=556677:pause_full_NAME=9922:stop_full_NAME=112233

我的嘗試:

List<String> list = new ArrayList<String>();

list.join(":",abc)

請提供更好的解決方法。

您對List理解很少有缺陷。 逗號僅用於表示目的。

要使用冒號連接字符串,可以執行以下操作

List<String> list = Arrays.asList("play_full_NAME=556677", 
                                  "pause_full_NAME=9922", 
                                  "stop_full_NAME=112233");

String joinedString = String.join(":", list);

您真的很了解列表嗎?

實際上,沒有分隔符,每個項目/值都存儲為不同的“對象”。

因此,您具有一些獨立的值-在這種情況下為字符串,在下面的屏幕快照中可以看到什么,或者是否執行System.out.println(someList); 它將調用方法toString()重寫,該方法繼承自ObjectObject是Java中所有類的根父類。

在此處輸入圖片說明

因此在List每個項目之間添加一些拆分字符絕對是胡說八道,它們已經被拆分,您可以通過get(int position)方法訪問每個項目。

因此,如果您想“自己打印”列表的每個項目,可以按照以下步驟進行:

for (int i = 0; i < someList.size(); i++) {
    System.out.println(i + " = " + someList.get(i));    
}
/* output will be 
   1 = 1 item
   2 = 2 item
   3 = 3 item
   4 = 4 item
*/

如果要實現用於打印“您的列表”的自定義方法,則可以擴展例如。 ArrayList類和重寫toString方法,但是更好和更簡單的方法是在某些utils中准備一些方法以獲取具有List上下文的格式化String輸出,例如。 (注意;在最后一個元素之后將有;

public static String getFormatStringFromList(ArrayList<String> data) {
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < data.size(); i++) {
        sb.append(data.get(i) + ";");   
    }

    return sb.toString();
    //eg. 0 item;1 item;2 item;3 item;4 item;
}

為了避免最后一個分隔符,您可以執行例如。 簡單檢查

public static String getFormatStringFromListWitoutLastSeparator(List<String> someList) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < someList.size(); i++) {
            sb.append(someList.get(i));
            if(i < someList.size() -1) {
                 sb.append(";");
            }
        }

        return sb.toString();
        //0 item;1 item;2 item;3 item;4 item
        /*
           someList[0] = 0 item
           someList[1] = ;
           someList[2] = 1 item
           someList[3] = ;
           {etc..}
        */
    }

從列表中獲取String的最佳方法將是@krisnik建議:

String joinedString = String.join(":", list);

如果希望它們位於列表中,則需要單獨添加冒號元素。

例如:

List<String> list = new ArrayList<String>();

list.add(abc);
list.add(":");
list.add(def);
list.add(":");

等等。

但我建議不要這樣做,因為您可以在需要時使用String.formatStringBuilder簡單地格式化輸出字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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