java - Java如何拆分字符串并删除其中的一部分?
问题描述
我有一个(List <String> titles)
这样的字符串列表:
"xxxl54.AE",
"xxxl56.AP",
"xxxl57.AE",
"xxxl58.VP",
"xxxl59.WR",
"xxxl56.SD"
但我想得到这个:
"xxxl54",
"xxxl56",
"xxxl57",
"xxxl58",
"xxxl59",
"xxxl56"
如何删除点右侧的部分?
解决方案
您需要使用默认字符串方法String.substring和String.indexOf的组合
要修改列表中的每个项目,您可以使用stream().map并将其再次保存为修改后的列表collect(Collectors.toList())
List <String> titles = new ArrayList<>();
titles.add("xxxl54.AE");
titles = titles.stream().map(it -> it.substring(0, it.indexOf("."))).collect(Collectors.toList());
但要小心 - 如果其中一项没有“。” 在其内容中,您需要单独处理:
List <String> titles = new ArrayList<>();
titles.add("xxxl54.AE");
titles.add("xxxl00AE");
titles = titles.stream().map(it -> {
int dotIndex = it.indexOf(".");
if(dotIndex != -1) {
it.substring(0, dotIndex);
}
return it;
}).collect(Collectors.toList());
推荐阅读
- python - discord_slash:如何实际添加斜线命令/为什么我的不起作用?
- python - Python moviepy 正在生成一个奇怪的视频
- css - 如何将 bulma navbar burger 对齐到页面的右端?
- wordpress - 在通过 hook/php 加载 Woocommerce 感谢页面的内容后,有什么方法可以运行代码?
- ruby-on-rails - 为什么 Ruby 版本 2.7.1p83 和 rails 6.0.3.5 在以下 ApplicationController 代码中说 config.action_dispatch 为 nil?
- visual-studio-2019 - 在“快速操作和重构”菜单 VS 2019 CE 中未看到“生成构造函数”
- c++ - 如何使用 Telegram 库 (Td) 解决 Qt 中的链接错误
- jquery - 带有 jPlayer 音频播放列表的高级自定义字段中继器
- angular - 获取客户端机器的mac地址或子网中的私有地址
- python - Pandas:如何通过多个条件选择行(如果不是 nan 并且等于特定值)