Java代码输出因子时如何移除末尾逗号?技术求助
解决Java因子输出末尾多余逗号的问题
这里提供三种实用的解决方案,帮你去掉输出结果末尾的逗号:
方法1:收集因子后用String.join拼接
先把所有因子存入集合,再用逗号拼接输出,代码简洁直观:
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { int number = 6; System.out.print("Factors of " + number + " are: "); List<Integer> factors = new ArrayList<>(); for (int i = 1; i <= number; ++i) { if (number % i == 0) { factors.add(i); } } // 将整数列表转为字符串数组后用逗号拼接 System.out.print(String.join(",", factors.stream().map(String::valueOf).toArray(String[]::new))); } }
方法2:控制逗号的输出时机
通过标记判断是否为第一个因子,仅在非第一个因子前输出逗号,无需额外集合:
public class Main { public static void main(String[] args) { int number = 6; System.out.print("Factors of " + number + " are: "); boolean isFirstFactor = true; for (int i = 1; i <= number; ++i) { if (number % i == 0) { if (!isFirstFactor) { System.out.print(","); } System.out.print(i); isFirstFactor = false; } } } }
方法3:用StringBuilder构建后删除末尾逗号
先拼接所有带逗号的因子,最后删除末尾多余的逗号:
public class Main { public static void main(String[] args) { int number = 6; System.out.print("Factors of " + number + " are: "); StringBuilder sb = new StringBuilder(); for (int i = 1; i <= number; ++i) { if (number % i == 0) { sb.append(i).append(","); } } // 确保有内容再删除最后一个逗号 if (sb.length() > 0) { sb.deleteCharAt(sb.length() - 1); } System.out.print(sb); } }
内容的提问来源于stack exchange,提问作者fatih.bolukbas
相关产品推荐
相关产品推荐

