Java如何实现逗号分隔输出且去除末尾多余逗号
解决Java集合交集输出末尾多余逗号的方案
下面是3种常用的可直接落地的修改方法:
- 方法1:新增首元素标记位,调整逗号输出逻辑
原代码每次先打印元素再加逗号,必然会在最后一个元素后多输出逗号。反过来调整逻辑:只给非第一个的匹配元素前置打印逗号,就可以避免末尾多余逗号,修改后代码如下:
public void himpunanIrisan(){ System.out.print("The Result is {"); // 新增标记判断是否为第一个输出的交集元素 boolean isFirst = true; for(int k=1; k<=setofB; k++){ boolean Sama = false; for(int i=1; i<=setofA; i++){ if(numberB[k] == numberA[i]){ Sama = true; } } if (Sama){ if(!isFirst){ // 非首个元素先打印分隔逗号 System.out.print(","); } System.out.print(numberB[k]); // 第一个元素打印后修改标记位 isFirst = false; } } System.out.println("}"); }
- 方法2:先收集所有交集元素再统一拼接
先把匹配到的交集元素存入列表,最后用Java内置的String.join方法拼接,自带分隔符处理逻辑,不会出现末尾多余逗号,代码可读性更高:
public void himpunanIrisan(){ List<Integer> irisanList = new ArrayList<>(); for(int k=1; k<=setofB; k++){ boolean Sama = false; for(int i=1; i<=setofA; i++){ if(numberB[k] == numberA[i]){ Sama = true; } } if (Sama){ irisanList.add(numberB[k]); } } String result = String.join(",", irisanList.stream().map(String::valueOf).toList()); System.out.println("The Result is {" + result + "}"); }
- 方法3:Java 8及以上版本用StringJoiner直接处理
StringJoiner内置前缀、后缀、分隔符配置,完全不需要手动处理逗号逻辑,代码更简洁:
public void himpunanIrisan(){ // 参数依次为分隔符、前缀、后缀 StringJoiner sj = new StringJoiner(",", "{", "}"); for(int k=1; k<=setofB; k++){ boolean Sama = false; for(int i=1; i<=setofA; i++){ if(numberB[k] == numberA[i]){ Sama = true; } } if (Sama){ sj.add(String.valueOf(numberB[k])); } } System.out.println("The Result is " + sj); }
内容的提问来源于stack exchange,提问作者Akmal Octavian
相关产品推荐
相关产品推荐

