使用 toString 拆分 observableList

所以我尝试使用 toString 拆分 observableList:

listeMedLag = DataHandler.hentDataCupLag("src/arrangementer.csv",2,listeMedLag,cup); //output: Skjeberg&Borgen
listeMedLag.toString().split("&");
lagSomErMed.setItems(listeMedLag); //output: Skjeberg&Borgen

有人知道为什么列表不拆分吗?


三国纷争
浏览 120回答 3
3回答

一只甜甜圈

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 listlistView.setItems(outputList);

手掌心

您可以使用flatMap将列表转换为具有不同项目数的列表。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.setAll(list.stream() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.flatMap(item&nbsp;->&nbsp;Arrays.asList(item.split("&")).stream()) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.collect(Collectors.toList()));这会将 的内容设置list为新项目,因此如果您有听众,他们可能会被多次解雇。

蛊毒传说

您需要将分割的字符串存储到局部变量中。喜欢:String[]&nbsp;split&nbsp;=&nbsp;&nbsp;=&nbsp;listeMedLag.toString().split("&"); lagSomErMed.setItems(split);或者lagSomErMed.setItems(listeMedLag.toString().split("&"));split方法签名:public&nbsp;String[]&nbsp;split(String&nbsp;regex)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java