3 回答

TA貢獻1836條經驗 獲得超5個贊
listeMedLag.toString()
根據列表的元素創建一個字符串。這有很多問題。該ObservableList實現可能無法準確創建您期望的字符串輸出。通常也有{}包裝內容。
此外,對對象方法返回的對象調用方法通常不會對原始對象產生影響。也有例外,但它們都有記錄。(示例為List.subList和List.iterator)。String但它是不可變的,并且它與列表沒有任何關系。調用split該字符串只會導致String[]創建一個包含該字符串部分的新數組。它對字符串對象沒有影響,對列表也沒有影響。
如果您的目的是拆分 a 的每個元素List<String>并用所有這些元素填充列表,我建議您創建一個包含所有這些元素的新列表,然后將內容分配給目標列表:
List<String> inputList = ...
ObservableList<String> outputList = FXCollections.observableArrayList();
// fill new list with elements of original list split at "&"
inputList.stream().map(s -> s.split("&")).forEach(outputList::addAll);
// do something with new list
listView.setItems(outputList);

TA貢獻1942條經驗 獲得超3個贊
您可以使用flatMap
將列表轉換為具有不同項目數的列表。
list.setAll(list.stream() .flatMap(item -> Arrays.asList(item.split("&")).stream()) .collect(Collectors.toList()));
這會將 的內容設置list
為新項目,因此如果您有聽眾,他們可能會被多次解雇。

TA貢獻1895條經驗 獲得超3個贊
您需要將分割的字符串存儲到局部變量中。喜歡:
String[] split = = listeMedLag.toString().split("&"); lagSomErMed.setItems(split);
或者
lagSomErMed.setItems(listeMedLag.toString().split("&"));
split
方法簽名:
public String[] split(String regex)
添加回答
舉報