为了账号安全,请及时绑定邮箱和手机立即绑定

使用 toString 拆分 observableList

使用 toString 拆分 observableList

三国纷争 2023-11-01 16:40:30
所以我尝试使用 toString 拆分 observableList:listeMedLag = DataHandler.hentDataCupLag("src/arrangementer.csv",2,listeMedLag,cup); //output: Skjeberg&Borgen listeMedLag.toString().split("&"); lagSomErMed.setItems(listeMedLag); //output: Skjeberg&Borgen有人知道为什么列表不拆分吗?
查看完整描述

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);


查看完整回答
反对 回复 2023-11-01
?
手掌心

TA贡献1942条经验 获得超3个赞

您可以使用flatMap将列表转换为具有不同项目数的列表。

        list.setAll(list.stream()
            .flatMap(item -> Arrays.asList(item.split("&")).stream())
            .collect(Collectors.toList()));

这会将 的内容设置list为新项目,因此如果您有听众,他们可能会被多次解雇。


查看完整回答
反对 回复 2023-11-01
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

您需要将分割的字符串存储到局部变量中。喜欢:

String[] split =  = listeMedLag.toString().split("&");
lagSomErMed.setItems(split);

或者

lagSomErMed.setItems(listeMedLag.toString().split("&"));

split方法签名:

public String[] split(String regex)


查看完整回答
反对 回复 2023-11-01
  • 3 回答
  • 0 关注
  • 119 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信