我有下面的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,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450 ->最后不带逗号
发布于 2016-01-12 10:01:10
只是简单的
for (int i = startRange; i <= endRange; i++) {
sb.append(i);
if(i != endRange)
sb.append(",");
}发布于 2016-01-12 09:57:53
对于Java 8,您可以切换到新的StringJoiner类,它正是为此目的添加的。
StringJoiner sb = new StringJoiner(",");
for (int i = startRange; i <= endRange; i++) {
sb.add(String.valueOf(i));
}
System.out.println(sb.toString());通过手动操作,我建议在项目之前添加逗号,然后使用子字符串(1):
for (int i = startRange; i <= endRange; i++) {
sb.append(",").append(i);
}
//Check for empty before!
System.out.println(sb.substring(1));发布于 2016-01-12 11:24:35
正如@Jan所说,如果您有StringJoiner,请使用Java8。否则,可以在新条目之前添加分隔符,并通过将分隔符初始化为空来区别对待第一项。
String separator = "";
for (int i = startRange; i <= endRange; i++) {
sb.append(separator).append(i);
separator = ",";
}这是Java8版本
StringJoiner sb = new StringJoiner(",");
for (int i = startRange; i <= endRange; i++) {
sb.add(String.valueOf(i));
}https://stackoverflow.com/questions/34740362
复制相似问题