Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java计算文本文件中的数字_Java_Arrays_File - Fatal编程技术网

使用Java计算文本文件中的数字

使用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;

这已经困扰了我一段时间了。我通常不会寻求帮助和做研究,但我找不到答案

如何编写一个程序来读取文本文件,并计算某个数字出现的次数? 我是Java的初学者,也是一般编程的新手。 这是我的密码

此代码生成一个包含100个随机数的文本文件

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]++;
        }

    }
}