【问题标题】:I am generating a series of numbers delimited with space but I want to remove the space at end我正在生成一系列用空格分隔的数字,但我想删除最后的空格
【发布时间】:2019-08-12 11:13:47
【问题描述】:

我正在使用 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 之后没有空格的输出。

【问题讨论】:

  • 您能否告诉我们为什么您*无法使用trim() 输出?你的数字系列有什么类型?是String 吗?您真的应该在此处发布生成该系列的代码。
  • 分享一些代码。否则我们无法提供帮助。
  • 立即查看代码。那你为什么不打印最后一个空格呢?
  • 如果您在循环中构建字符串,请使用字符串构建器,您也可以在获取字符串构建器的值时删除最后一个字符,然后记录该值,不要只是推送所有内容到 sys/out/print 因为那样你就不能与值交互
  • 这就是我想知道的如何删除它? @M。普罗霍罗夫

标签: java for-loop trim


【解决方案1】:
int i;
for(i = 1; i < str.length(); i++) {
  System.out.print(i + " ");
}
System.out.println(i);

【讨论】:

  • 虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
【解决方案2】:

像这样在 for 循环中进行 if 测试

if (i == str) {
    System.out.printf("%d", i); 
} else {
    System.out.printf("%d", i); 
    System.out.print(" "); 
}

【讨论】:

    【解决方案3】:

    您想要的逻辑是在每个数字后面打印一个空格,除了最后一个数字。你应该在你的代码中的某个地方有这个条件逻辑。喜欢,

    if (i < str)
        System.out.print(" ");
    

    注意:如果变量str 包含数字,则调用它会非常混乱;每个人都会假设它是一个字符串而不是一个数字。你可以把代码改成这样:

    public static void main(String [] args){
        Scanner s = new Scanner(System.in);
        int n = s.nextInt();
    
        for(int i = 1; i <= n; i++) {
            System.out.print(i);
            if (i < n)
                System.out.print(" ");
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-30
      • 2021-07-27
      • 1970-01-01
      • 1970-01-01
      • 2020-10-03
      相关资源
      最近更新 更多