猿问

我正在生成一系列以空格分隔的数字,但我想删除末尾的空格

我正在使用 for 循环生成一系列数字,用空格分隔,但我想最后删除尾随空格。无法将 trim() 用于输出。


 import java.util.*;

public class Main {

    public static void main(String [] args){

        Scanner s = new Scanner(System.in);

        int str = s.nextInt();


    for(int i=1; i<=str; i++) {

        System.out.printf("%d", i);

        System.out.print(" ");

    }

    }

}

1 2 3 4 5(此处留空)


但我想要 5 之后没有空格的输出。


慕婉清6462132
浏览 122回答 3
3回答

偶然的你

int i;for(i = 1; i < str.length(); i++) {&nbsp; System.out.print(i + " ");}System.out.println(i);

拉莫斯之舞

像这样在 for 循环中做一个 if 测试if (i == str) {&nbsp; &nbsp; System.out.printf("%d", i);&nbsp;} else {&nbsp; &nbsp; System.out.printf("%d", i);&nbsp;&nbsp; &nbsp; System.out.print(" ");&nbsp;}

函数式编程

您想要的逻辑是在除最后一个数字之外的每个数字后面打印一个空格。你的代码中应该有这个条件逻辑。喜欢,if (i < str)&nbsp; &nbsp; System.out.print(" ");str注意:如果变量包含数字,调用它会很混乱;每个人都会假设它是一个字符串而不是数字。您可以将代码更改为如下所示:public static void main(String [] args){&nbsp; &nbsp; Scanner s = new Scanner(System.in);&nbsp; &nbsp; int n = s.nextInt();&nbsp; &nbsp; for(int i = 1; i <= n; i++) {&nbsp; &nbsp; &nbsp; &nbsp; System.out.print(i);&nbsp; &nbsp; &nbsp; &nbsp; if (i < n)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.print(" ");&nbsp; &nbsp; }}
随时随地看视频慕课网APP

相关分类

Java
我要回答