![](/img/trans.png)
[英]Converting ArrayList to String and converted String back to ArrayList
[英]Converting from String[] to Arraylist, removing elements and converting and back to String[]
String [] TxtStr = new String[] {"bob","alan", "sam"};
List<String> stringList = new ArrayList<String>(Arrays.asList(TxtStr));
String [] TxtStr2 = new String[] {"bob","alan"};
List<String> stringList2 = new ArrayList<String>(Arrays.asList(TxtStr));
stringList.removeAll(stringList2);
String[] bTxtStr = stringList.toArray(new String[stringList.size()]);
String output = "nnn";
for (int x=0; x<bTxtStr.length; x++){
output +=bTxtStr[x];
}
目前,這是我正在處理的Android項目的一小部分,我必須在其中比較2 String []的內容。
我遇到了很多問題,所以我以一個簡單的案例2 String []開始,分別包含2個元素和3個元素。 在初始化String []之后,我將它們轉換為ArrayLists並執行removeAll函數,理想情況下,該函數應從第一個列表中刪除元素“ bob”和“ alan”,並最終刪除輸出。
BTW使用remove到stringList.remove(“ bob”)的工作方式是從ArrayList中消除該特定字符串。 只是想知道我能做些什么來確保stringList.removeAll(....)工作。
感謝您的任何幫助。
您有以下錯誤:
List<String> stringList2 = new ArrayList<String>(Arrays.asList(TxtStr));
您應該使用TxtStr2
:
List<String> stringList2 = new ArrayList<String>(Arrays.asList(TxtStr2));
List<String> stringList = Arrays.asList("bob","alan", "sam");
List<String> stringList2 = Arrays.asList("bob","alan");
String mergedString = stringList.stream().filter(string ->!stringList2.contains(string)).collect(Collectors.joining(","));
System.out.println("Merged String: " + mergedString);
您可能最終將刪除所有內容,因為您的列表創建基於相同的數組。 更改
List<String> stringList2 = new ArrayList<String>(Arrays.asList(TxtStr);
至
List<String> stringList2 = new ArrayList<String>(Arrays.asList(TxtStr2);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.