Removing 123 at pos 0 : 456, 123, 982, 345
Removing 456 at pos 1 : 123, 123, 982, 345
Removing 123 at pos 2 : 123, 456, 982, 345
Removing 982 at pos 3 : 123, 456, 123, 345
Removing 345 at pos 4 : 123, 456, 123, 982
传递字符串和位置(从1开始)
按分隔符拆分字符串以创建元素数组
创建ArrayList的元素。
拆下指定位置的一个。
和join,返回一个String。
public static String removeItem(String str, int pos) {
List<String> list = new ArrayList<>(Arrays.asList(str.split(",")));
list.remove(pos-1);
return String.join(",", list);
}
如果不存在重复项,则使用String.replace()
String str = "123,456,423,982,345";
str = str.replace("423,","); // replace with an empty string
System.out.println(str);
2条答案
按热度按时间y3bcpkx11#
您可以在逗号处拆分字符串,然后移除不需要的值并再次连接它。下面是使用Java 8 Streams API执行此操作的示例:
我还注意到你的问题中有“CSV”标签。如果你打算解析CSV,最好使用fast-csv或commons-csv这样的库。它们会更优化,也支持更复杂的情况,比如转义。
elcex8rz2#
如果有多个重复的值,这里有一种方法可以按位置删除。
印刷品
ArrayList
的元素。如果不存在重复项,则使用String.replace()
印刷品