StringBuilder 在 Java 中的 for 循环中追加

到克

当我执行以下操作时:

static void Append() {
    StringBuilder sb = new StringBuilder();
    System.out.print("How many words do you want to append? ");
    int n = input.nextInt();
    System.out.println("Please type the words you want to append: ");
    for (int c = 1; c <= n; c++) {
        String str = input.nextLine();
        sb.append(str);
        System.out.print(" ");
    }
    System.out.print(sb);

}

假设我输入 3,那么计算机只允许我输入 2 个单词。

这是输出:

How many words do you want to append? 3
Please type the words you want to append: 
 I
 am
 Iam

另外,为什么单词前有一个空格?打印功能在输入功能之后。那么不应该是相反的吗?

陈杰诺

如果你调试那个程序,你会发现循环的第一次会得到input.nextLine()一个空字符串。这是出现问题的时候。

当您输入 a3和 a \nfor 时int n = input.nextInt();,输入缓冲区包含“3\n”,并且input.nextInt();只会取“3”,如下图所示:

位置是 1其中position输入为 1,缓冲区中剩余“\n”。然后当程序需要 时nextLine(),它将读取缓冲区直到出现“\n”,这导致读取一个空字符串。

在 nextLine() 之后位置变为 2

所以一个可能的解决方法是String empty = input.nextLine();在循环之前添加一个,或者使用input.next();而不是input.nextLine();,因为在文档中说,input.next();将返回下一个标记。

更新:请注意,没有人在底部回答您的第二个问题......

您应该System.out.println(" ");将循环中的行修改sb.append(" ");.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在JAVA 7中从StringBuilder对象(循环运行)中消除最后一个逗号的方法?

来自分类Dev

带if语句的for循环中的stringbuilder

来自分类Dev

在Java中迭代StringBuilder的标准方法?

来自分类Dev

Java:从StringBuilder中删除字符串

来自分类Dev

StringBuilder 在 Java 中是如何反向工作的?

来自分类Dev

Java-嵌套for循环和StringBuilder

来自分类Dev

Java-在线程中的while循环后无法访问StringBuilder

来自分类Dev

Java中的循环中断

来自分类Dev

在while循环中来自stringbuilder的StringIndexOutOfBoundsException错误

来自分类Dev

在Java中的while循环中访问值?

来自分类Dev

在Java中的for循环中显示BufferedImages数组

来自分类Dev

Java新的String和StringBuilder在堆中的行为

来自分类Dev

与Java中的StringBuilder相比,字符串的优势

来自分类Dev

从 java StringBuilder 中删除子字符串

来自分类Dev

在R中的for循环中追加数组

来自分类Dev

追加到stringBuilder时出现Java堆错误

来自分类Dev

StringBuilder .equals Java

来自分类Dev

java String和StringBuilder

来自分类Dev

StringBuilder JAVA的性能问题

来自分类Dev

ActiveMQ中的Stringbuilder

来自分类Dev

最快的 StringBuilder 整数追加

来自分类Dev

Java在for循环中的JTable中添加组合框

来自分类Dev

如何在Java Android中的for循环中更改按钮的名称

来自分类Dev

在Java中的for循环中实例化新对象

来自分类Dev

嵌套在多数组中的方法的for循环中,java

来自分类Dev

在While循环中将增量数字追加到类中

来自分类Dev

在Java 8中,用于合并的'+'运算符由新的StringBuilder()代替

来自分类Dev

StringBuilder中的少量附加性能

来自分类Dev

在RandomAccessFile中结束行StringBuilder

Related 相关文章

热门标签

归档