我正在尝试在没有最后一个逗号的情况下打印此循环。我一直在谷歌搜索这个,从我看到的一切似乎过于复杂这样一个小问题。当然有一个简单的解决方案,以避免打印最后一个逗号。非常感谢,如果有人能帮助我,这让我疯了!!!
例如,它从1-10 // 1,2,3,4,5,6,7,8,9,10循环,<不想要这最后一个逗号
public static void atob(int a,int b)
{
for(int i = a; i <= + b; i++)
{
System.out.print(i + ",");
}
}
答案 0 :(得分:11)
我可能因为这个答案而被石头砸死了
public static void atob(int a,int b) {
if(a<=b) {
System.out.println(a);
for(int i = a+1;i<=b;i++) {
System.out.println(","+i);
}
}
}
}
答案 1 :(得分:5)
试试这个
public static void atob(int a,int b)
{
for(int i = a; i < b; i++)
{
System.out.print(i + ",");
}
System.out.print(b);
}
答案 2 :(得分:5)
另一种方法。
String sep = "";
for(int i = a; i <= b; i++) {
System.out.print(sep + i);
sep = ",";
}
如果您使用的是StringBuilder
StringBuilder sb = new StringBuilder();
for(int i = a; i <= b; i++)
sb.append(i).append(',');
System.out.println(sb.subString(0, sb.length()-1));
答案 3 :(得分:4)
Java 8:
IntStream.rangeClosed(a, b)
.collect(Collectors.joining(","));
如果要执行交错操作:
Java 8:
IntStream.rangeClosed(a, b)
.peek(System.out::print)
.limit(b - a) // [a:(b-1)]
.forEach(i -> System.out.print(","));
Java 9:
IntStream.rangeClosed(a, b)
.peek(System.out::print)
.takeWhile(i -> i < b) // [a:(b-1)]
.forEach(i -> System.out.print(","));
答案 4 :(得分:3)
public static void atob(int a, int b) {
if (a < b) {
System.out.print(a);
while (a < b) {
a++;
System.out.print("," + a);
}
}
}
使用
调用时atob(0,10);
会给出输出
0,1,2,3,4,5,6,7,8,9,10
答案 5 :(得分:1)
一般方法可以区分第一项和所有其他项。第一次运行,没有逗号在我之前打印。之后,每次都会在我之前打印逗号。
public static void atob(int a,int b) {
boolean first = true;
for(int i = a; i <= + b; i++) {
if ( first == false ) System.out.print(",");
System.out.print(i);
first = false;
}
}
在这种特殊情况下,使用三元运算符(http://en.wikipedia.org/wiki/Ternary_operation),您可以将其编写为紧凑的:
public static void atob(int a,int b) {
for(int i = a; i <= + b; i++) {
System.out.print( i + ( i < b ? "," : "" ) );
}
}
如果没有三元操作,这将看起来像这样(并且更具可读性,这通常是一件好事):
public static void atob(int a,int b) {
for(int i = a; i <= + b; i++) {
System.out.print( i );
if ( i < b ) System.out.print( "," );
}
}
(请注意+ b与b相同,因此您可以替换它,正如其他人在答案中所做的那样)
答案 6 :(得分:0)
尝试:
public static void atob(int a, int b) {
if (b < a) {
final int temp = a;
a = b;
b = temp;
}
System.out.print(a++);
for (int i = a; i < b ; i ++ ) {
System.out.print("," + i);
}
}
答案 7 :(得分:0)
稍作调整(逗号后的方法名称,变量和空格):
public static void printSequence(int start, int end) {
if (end < start) {
return; // or however you want to handle this case
}
if (end == start) {
System.out.print(start);
return;
}
StringBuilder sequence = new StringBuilder();
for (int i = start; i <= end; i++) {
sequence.append(i).append(", ");
}
// now simply print the sequence without the last ", "
System.out.print(sequence.substring(0, sequence.length() - 2));
}
答案 8 :(得分:0)
使用StringBuilder。使用基于子串的索引。
window.$scope = $scope;
angular
.element(document.querySelector('#timbroDraggable'))
.draggable({
containment: "parent",
// On drag start
start: function( event, ui ) {
$(this).removeClass("draggable");
$(this).addClass("dragging");
},
// On drag stop
stop: function( event, ui ) {
window.oggettoDaTimbrare.posizioneTimbroX = ui.position.left;
window.oggettoDaTimbrare.posizioneTimbroY = ui.position.top;
$scope.documentoDaTimbrare[$scope.numPag].pagine.posX = window.oggettoDaTimbrare.posizioneTimbroX;
/* ... */
}
});
答案 9 :(得分:0)
public static void atob (int a,int b){
for(int i = a; i <= b; i++)
{
System.out.print(i );
if(i<b){
System.out.print(",");
}
}
}
答案 10 :(得分:0)
笨重的解决方案,但是嘿 - 它有效。
public static void atob(int a, int b){
int count = 1;
for(int i = a; i <= + b; i++) {
System.out.print(i);
if(count!=((b + 1) - a)) {
System.out.print(", ");
count++;
}
}
}
或者,这也有效。
public static void atob(int a, int b){
int count = 0;
for(int i = a; i <= + b; i++) {
if(count > 0){
System.out.print(", ");
}
System.out.print(i);
count++;
}
}
答案 11 :(得分:0)
找到另一种使用正则表达式的简单方法:
String str = "abc, xyz, 123, ";
str = str.replaceAll(", $", "");
System.out.println(str); // "abc, xyz, 123"
答案 12 :(得分:0)
你可以简单地使用退格序列作为退格(\ b),在主循环之外,它将删除最后一个逗号。
public static void atob(int a,int b)
{
for(int i = a; i <= + b; i++)
{
System.out.print(i + ",");
}
System.out.print("\b");
}