使用Java计算文本文件中的数字
这已经困扰了我一段时间了。我通常不会寻求帮助和做研究,但我找不到答案 如何编写一个程序来读取文本文件,并计算某个数字出现的次数? 我是Java的初学者,也是一般编程的新手。 这是我的密码 此代码生成一个包含100个随机数的文本文件使用Java计算文本文件中的数字,java,arrays,file,Java,Arrays,File,这已经困扰了我一段时间了。我通常不会寻求帮助和做研究,但我找不到答案 如何编写一个程序来读取文本文件,并计算某个数字出现的次数? 我是Java的初学者,也是一般编程的新手。 这是我的密码 此代码生成一个包含100个随机数的文本文件 import java.io.*; public class Rolling { public static void main (String[] args) throws IOException { int randomNum;
import java.io.*;
public class Rolling
{
public static void main (String[] args) throws IOException
{
int randomNum;
PrintWriter fileout = new PrintWriter (new FileWriter ("randumnums.txt"));
for (int i= 0; i < 101; i++)
{
randomNum = (int) (Math.random() * 100);
fileout.println (randomNum);
}
fileout.close();
}
}
import java.io.*;
公开课滚动
{
公共静态void main(字符串[]args)引发IOException
{
int随机数;
PrintWriter fileout=新的PrintWriter(新的FileWriter(“randumnums.txt”);
对于(int i=0;i<101;i++)
{
randomNum=(int)(Math.random()*100);
fileout.println(randomNum);
}
fileout.close();
}
}
现在我遇到的问题是,我需要读取该文件并编写一个代码,说明X数字被滚动了3次。e、 g数字4在文本文件中出现了5次,因此我需要它打印“数字4被滚动了5次”
import java.io.*;
公共课阅读
{
公共静态void main(字符串[]args)引发IOException
{
BufferedReader readFile=新的BufferedReader(新文件读取器(“randumnums.txt”);
整数=0;
int inMarks[]=新int[100];
对于(int i=0;i<100;i++)
{
inMarks[i]=Integer.parseInt(readFile.readLine());
}
}
}
事实上你已经很接近了。很明显,您必须在某种列表中跟踪您的计数,而数组在这里可以做得很好
首先,在标记中实例化后,将其中的每个值初始化为0:
int inMarks [] = new int [100];
for (int i = 0; i < 100; i++)
{
inMarks [i] = 0;
}
inMarks
现在可以完美地跟踪每个不同的int
在文件中滚动的次数。我将让您实施作业的打印部分,因为这将使您更好地了解此解决方案的工作原理。您实际上非常接近。很明显,您必须在某种列表中跟踪您的计数,而数组在这里可以做得很好
首先,在标记中实例化后,将其中的每个值初始化为0:
int inMarks [] = new int [100];
for (int i = 0; i < 100; i++)
{
inMarks [i] = 0;
}
inMarks
现在可以完美地跟踪每个不同的int
在文件中滚动的次数。我将让您实现作业的打印部分,因为这将使您更好地了解此解决方案的工作原理。我感觉您正在寻找类似的内容(我尚未测试此代码)
上面的代码基本上有一个100个整数的数组。然后我们开始读取文件,直到无法再读取任何内容为止。每次我们读一行代码时,我们都会将其解析为一个整数(通常情况下,您应该将其包装为一个try…catch)。然后,通过增加数组中相应的索引,将读取该数字的次数增加1。因此,如果您想知道数字“32”出现了多少次,您可以执行System.print.out(inMarks[32]) 我感觉您正在寻找类似的东西(我还没有测试过这段代码)
上面的代码基本上有一个100个整数的数组。然后我们开始读取文件,直到无法再读取任何内容为止。每次我们读一行代码时,我们都会将其解析为一个整数(通常情况下,您应该将其包装为一个try…catch)。然后,通过增加数组中相应的索引,将读取该数字的次数增加1。因此,如果您想知道数字“32”出现了多少次,您可以执行System.print.out(inMarks[32]) 出什么事了?您是否有错误?请正确设置示例代码的格式。出现了什么问题?您是否有错误?请正确格式化示例代码。+1但您不必初始化int数组,默认情况下它们用0填充。@arynaq:是的,但我认为这是使代码更可读、更可靠的好习惯之一。+1但您不必初始化int数组,默认情况下,它们是用0填充的。@arynaq:true,但我认为这是使代码更可读、更可靠的好习惯之一。
String nextLine = null;
while ((nextLine = readFile.readLine()) != null)
{
int thisInt = Integer.parseInt(nextLine);
inMarks[thisInt] = inMarks[thisInt] + 1;
}
import java.io.*;
public class Reading {
public static void main (String[] args) throws IOException {
BufferedReader readFile = new BufferedReader (new FileReader("randumnums.txt"));
int number = 0;
int inMarks [] = new int [100];
String readNumber = "";
while ((readNumber = readFile.readline()) != null) {
number = Integer.parseInt(readNumber);
inMarks[number]++;
}
}
}