Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用StringBuilder时已从上一个中删除逗号_Java_Stringbuilder_Stringbuffer - Fatal编程技术网

Java 使用StringBuilder时已从上一个中删除逗号

Java 使用StringBuilder时已从上一个中删除逗号,java,stringbuilder,stringbuffer,Java,Stringbuilder,Stringbuffer,我有下面的Java程序,我不想在我的最后一个元素之后被赋值,该怎么办 String range = "400-450"; Integer startRange = null; Integer endRange = null; StringTokenizer st = new StringTokenizer(range,"-"); while(st.hasMoreTokens()) { startRang

我有下面的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);
String range=“400-450”;
整数startRange=null;
整数endRange=null;
StringTokenizer st=新的StringTokenizer(范围“-”);
而(st.hasMoreTokens()){
startRange=Integer.parseInt(st.nextToken());
endRange=Integer.parseInt(st.nextToken());
} 
StringBuilder sb=新的StringBuilder();

对于(int i=startRange;i,最后不带逗号)

对于Java 8,您可以切换到添加的新类,该类正是为此目的而添加的:

StringJoiner sb=新的StringJoiner(“,”);

对于(int i=startRange;i只需让最后一个附加逗号的循环在到达最后一个元素之前停止:

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();
        // here, the "<=" was changed to "<"
        for (int i = startRange; i < endRange; i++) {
            sb.append(i).append(",");
        }
        // append last element
        sb.append(endrange)
        System.out.println(sb);
String range=“400-450”;
整数startRange=null;
整数endRange=null;
StringTokenizer st=新的StringTokenizer(范围“-”);
而(st.hasMoreTokens()){
startRange=Integer.parseInt(st.nextToken());
endRange=Integer.parseInt(st.nextToken());
} 
StringBuilder sb=新的StringBuilder();
//在这里,在每个
i
之后添加“您要添加的
”,“
只有在未到达endRange时,才尝试附加“
”,“

做:

for(inti=startRange;iJava<8使用Joiner(番石榴)

List<Integer> numbers = Lists.newArrayList(1, 3, 4, 5, 23);
System.out.println(Joiner.on(",").join(numbers));
List number=Lists.newArrayList(1,3,4,5,23);
System.out.println(Joiner.on(“,”).join(number));
输出为:

1,3,4,5,23就这么简单

for (int i = startRange; i <= endRange; i++) {
   sb.append(i);
   if(i != endRange)
        sb.append(",");
}

for(int i=startRange;i如@Jan所说,如果您有Java8,请使用
StringJoiner
。否则,您可以在新条目之前添加分隔符,并通过将分隔符初始化为空来区别对待第一项

   String separator = "";
    for (int i = startRange; i <= endRange; i++) {
        sb.append(separator).append(i);
        separator = ",";
    }
字符串分隔符=”;

对于(int i=startRange;我最后还是逗号(,)来了,我不想这样。谢谢你的提示!请参阅倒数第二行的更正!这不是编译为
StringJoiner.add()
接受
CharSequence
而不是整数。你需要
sb.add(String.valueOf(i))
请不要只发布代码-添加一个解释,说明为什么这可以解决问题。
List<Integer> numbers = Lists.newArrayList(1, 3, 4, 5, 23);
System.out.println(Joiner.on(",").join(numbers));
for (int i = startRange; i <= endRange; i++) {
   sb.append(i);
   if(i != endRange)
        sb.append(",");
}
   String separator = "";
    for (int i = startRange; i <= endRange; i++) {
        sb.append(separator).append(i);
        separator = ",";
    }
    StringJoiner sb = new StringJoiner(",");
    for (int i = startRange; i <= endRange; i++) {
        sb.add(String.valueOf(i));
    }