【问题标题】:Concat numbers to write to file by printWriter连接数字以通过 printWriter 写入文件
【发布时间】:2015-08-10 15:12:49
【问题描述】:

我想要这样的输出:

 9000000000
 9000000001
 9000000002
 ...
 9999999999

我从 a=9 开始循环,但它从开始输出开始打印,它从 0 到 9 开始打印到文件中,然后一个接一个地继续。

class Demo {

  public static void main(String args[]) throws IOException {
    long n = 9;
    int a = 9, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0;
    PrintWriter writer = new PrintWriter("psy.txt", "UTF-8");

    for (a = 9; a <= n; j++) {
      for (b = 0; b <= n; i++) {
        for (c = 0; c <= n; j++) {
          for (d = 0; d <= n; i++) {
            for (e = 0; e <= n; j++) {
              for (f = 0; f <= n; i++) {
                for (g = 0; g <= n; j++) {
                  for (h = 0; h <= n; i++) {
                    for (i = 0; i <= n; j++) {
                      for (j = 0; j <= n; i++) {
                        writer.println(a + b + c + d + e + f + g + h + i + j);
                        System.out.println(a + b + c + d + e + f + g + h + i
                            + j);
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    writer.close();
  }
}

【问题讨论】:

  • 复制粘贴错误?你不会增加 a、b、c ......它总是 i 或 j
  • System.out.println(a + b + c + d + e + f + g + h + i + j); 有一个号码。你不想要它,是吗?
  • 是的,但我想要的是,当我执行这个程序时,带有“psy.txt”的文件的值应该从 9000000000 开始,但它从 0 开始
  • 所有初始值都为零。你希望它在开始时是 9000000000 吗?
  • @DariushJafari, a = 9

标签: java file printwriter


【解决方案1】:

您不能以这种方式连接数字。您需要将它们转换为“字符串”才能连接它们。除了你的循环增量器是错误的。他们都有 i++ 和 j++ !!!!!!

 for (a = 9; a <= n; a++) {
        for (b = 0; b <= n; b++) {
            for (c = 0; c <= n; c++) {
                for (d = 0; d <= n; d++) {
                    for (e = 0; e <= n; e++) {
                        for (f = 0; f <= n; f++) {
                            for (g = 0; g <= n; g++) {
                                for (h = 0; h <= n; h++) {
                                    for (i = 0; i <= n; i++) {
                                        for (j = 0; j <= n; j++) {
                                            String s = a + "" + b + "" + c + "" + d + "" + e + "" + f + "" + g + "" + h + "" + i + "" + j;
                                            writer.println(s);
                                            System.out.println(s);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

你想从 9000000000 开始一个一个地写数字。一个解决方案是:

 for (long l = 9000000000L; l < 9999999999L; l++) {
        writer.println(l);
        System.out.println(l);
 }

【讨论】:

  • 谢谢,但现在打印的是 14 位数值
  • 你错了,整数太大了。
  • 循环变量不是整数
猜你喜欢
  • 1970-01-01
  • 2017-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多