java - 使用 StringBuilder 时删除了最后一个逗号

标签 java stringbuilder stringbuffer

我有以下 Java 程序,但我不希望在最后一个元素之后分配“,”,该怎么办?

String range = "400-450";
        Integer startRange = null;
        Integer endRange = null;
        StringTokenizer st = new StringTokenizer(range,"-");  
        while(st.hasMoreTokens()) { 
            startRange = Integer.parseInt(st.nextToken()); 
            endRange= Integer.parseInt(st.nextToken()); 
        } 
        StringBuilder sb = new StringBuilder();
        for (int i = startRange; i <= endRange; i++) {
            sb.append(i).append(",");
        }
        System.out.println(sb);

输出应该是 400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,4 30,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450 --> 最后没有逗号

最佳答案

对于Java 8,您可以切换到新类 StringJoiner 正是为了这个目的而添加的:

    StringJoiner sb = new StringJoiner(",");
    for (int i = startRange; i <= endRange; i++) {
        sb.add(String.valueOf(i));
    }
    System.out.println(sb.toString());

手动执行此操作,我建议在项目之前添加逗号,然后使用 substring(1):

    for (int i = startRange; i <= endRange; i++) {
        sb.append(",").append(i);
    }
    //Check for empty before!
    System.out.println(sb.substring(1));

关于java - 使用 StringBuilder 时删除了最后一个逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34740362/

相关文章:

java - 将索引处的所有字符(在 StringBuilder 中)替换为另一个字符串

java - 用字符串替换 StringBuffer/StringBuilder

java - 如何使用新的 computeIfAbsent 函数?

java - Spring:在 Java 配置中定义自定义 @Transactional 行为

java - 用于在分号分隔的数字列表中查找数字的正则表达式模式

java - java中如何从字符串中获取正确的特殊字符?

java - Java StringBuffer 中的deleteCharAt()有什么用?

java - ArrayList不包含字符串

java - 写入 StringBuilder 时某些字符丢失

java - StringBuilder.append() 导致 java.lang.NullPointerException