【发布时间】:2012-03-02 22:08:34
【问题描述】:
早上好,
我正在做一些 Java 练习并偶然发现了这个问题。我有一个包含多个数字的 .txt 文件,每行一个。练习的目标是查看哪些数字等于 10^0, ... , 10^n 直到达到 n。然后,我必须在 .txt 中写下每一个出现的次数。 所以我有一个文件:
1 100 100 100 10 1 1
我需要写:
1 - 10 3 - 1 3 - 100
我可以读取文件,检查然后编号,然后打印。我只是不知道如何制作一个计数器而不是保持正确。有什么帮助吗?
这是一段代码:
// TODO - Count how many time a number appears.
public static void numberOfTimes (BufferedReader in, BufferedWriter out, int n) throws IOException {
String s;
int i;
int counter = 0;
while ((s = in.readLine()) != null) {
i = Integer.parseInt(s);
for (int j = 0; j <= n; j++) {
if (i == Math.pow(10, j)) {
counter++;
out.write(Integer.toString(counter) + " " + Integer.toString(i) + "\n");
}
}
}
}
【问题讨论】:
-
所以您只需要计算 1、10、100、1000 等数字吗?换句话说,你能在源文件中有数字 45 吗?
-
是的,源文件中混杂了很多数字。我只需要在给定一个 n 的情况下检查所有这些,看看哪些是 10^0 到 10^n 并计算它们。