我正在开发一个 Java 程序。我必须计算 file.txt 中的总数,但我没有办法找到 file.txt 的最大和最小数字,我希望你可以帮助我。
我的代码在这里:
package program;
import java.io.IOException;
import java.io.StreamTokenizer;
import java.io.FileReader;
public class count
{
int countnum=0;
public count() throws IOException
{
StreamTokenizer st=new StreamTokenizer(new FileReader("file.txt"));
while(st.nextToken() != StreamTokenizer.TT_EOF) {
if(st.ttype == StreamTokenizer.TT_NUMBER) {
countnum++;
}
}
System.out.println("total numbs are: "+countnum);
}
public static void main(String[] args) throws IOException {
new count();
}
}
最佳答案
上一个答案中的代码可以工作,但在这种情况下使用 Set 是一种矫枉过正。它会产生存储集合中每个数字的成本。对于非常大的文件,性能将明显比下面的解决方案差,在我看来,这同样优雅。
public void count() throws IOException
{
int countnum = 0;
int min = Integer.MAX_VALUE, max = Integer.MIN_VALUE;
StreamTokenizer st = new StreamTokenizer(new FileReader("file.txt"));
while(st.nextToken() != StreamTokenizer.TT_EOF) {
if(st.ttype == StreamTokenizer.TT_NUMBER) {
countnum++;
int value = (int) st.nval;
if (value < min)
min = value;
if (value > max)
max = value;
}
}
System.out.println("total numbs are: " + countnum);
System.out.println("highest is : " + max + ", smallest is : " + min);
}
关于java - 如何找到file.txt的最大和最小数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21809517/