计算数字的出现次数 java_关于Java:如何计算数字在.txt文件中出现的次数

早上好,

我正在做一些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) +"

");

}

}

}

}

所以您只需要计算1、10、100、1000等数字? 换句话说,源文件中可以有数字45吗?

是的,源文件中混合了很多数字。 我只需要给定某个n,然后检查所有这些,看看哪些是10 ^ 0到10 ^ n并计数。

由于要跟踪多个计数,因此单个整数计数器显然不够用。

一种可能性是使用Map进行计数。 因为这是家庭作业,所以我留给您找出细节。

另一种可能性是使用一个计数数组,并使用log10(i)作为该数组的索引。 换句话说,10^k的计数将存储在数组的第k个位置。 提示:在您的代码中,您已经在间接计算log10(i)。

log10创意为+1,这在特定情况下适用,但不适用于任何数字(与映射始终有效的地图不同)。

或者您可以只使用字符串长度-1(=零个数)

嗡嗡声,从未使用过或听说过$ Map ,但我将介绍一下API。

我当时是这样想的:将所有找到的值存储在一个数组中,然后针对每个数组查找数组。 如果发现例如3 10 ^ 0,则counter1 = 3,counter1 = 2,依此类推2,等等。但这看起来效率很低,我希望有一个更简洁,更简短的解决方案。 感谢您的所有答复。

由于您正在处理Integer,因此可以预加载所有小于Integer.MAX(2,147,483,647)的值的Map。

映射将需要10 ^ 0,10 ^ 1,...,10 ^ 9中的所有值作为键(总共十(10)个键)。 然后,您需要对读取的值进行布尔检查,如果与这些键之一匹配,则将该键的值加1。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303413.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Asp.net中的HttpModule和HttpHandler的简单用法

在Asp.net中&#xff0c;HttpModule和HttpHandler均可以截取IIS消息进行处理&#xff0c;这使得我们制作人员能够非常方便的进行诸如图片水印添加&#xff0c;图片盗链检查等功能。 下面先就HttpModule的使用方法进行简单说明&#xff1a; using System;using System.Web;names…

C# $的用法

今天闲来无事&#xff0c;就随便在网上乱看&#xff0c;突然想到Jquery的$符号很强大&#xff0c;那么C#有没有这个东西呢&#xff0c;一查&#xff0c;果然有。经查证发现&#xff0c;这个是在C#6.0出现的一个新特性&#xff0c;也就是一个小语法糖&#xff0c;其作用相当于对…

想转行人工智能?机会来了!!!

一个坏消息&#xff1a;2018年1月 教育部印发的《普通高中课程方案和语文等学科课程标准》新加入了数据结构、人工智能、开源硬件设计等 AI 相关的课程。这意味着职场新人和准备找工作的同学们&#xff0c;为了在今后十年内不被淘汰&#xff0c;你们要补课了&#xff0c;从初中…

tankwar java_TankWar 单机(JAVA版) 版本0.3 画出坦克

其实就是通过自定义的panel 重写里面的paint方法 使用Graphics类画一个圆然后把自定的panel添加到窗口中由于想到tank不能只画一个 所以我们封装一个tank类 里面有一个draw方法 用来画 坦克通过实例化tank 调用draw方法就能实现画tank了具体代码如下&#xff1a;Tank类pac…

轻量NuGet服务—BaGet

相信大家都受益过nuget.org&#xff0c;上面的海量的库、工具、模板为我们开发提供了极大的帮助&#xff0c;其中有很多都是非常宽松的开源协议&#xff0c;在此感谢那无私奉献的人。有的时候&#xff0c;在企业内部&#xff0c;有些库是私有的&#xff0c;专项的&#xff0c;要…

光驱读盘不正常

问&#xff1a;我的电脑安装的是Windows XP操作系统&#xff0c;安装好后出现了一个问题&#xff0c;就是不能连续读光盘&#xff0c;插入第一张光盘一切正常&#xff0c;打开光驱放入第二张光盘&#xff0c;发现里边的内容竟是第一张光盘的内容&#xff0c;重新启动机器后&…

在安卓上安装java_如何在Android上安装JavaCV并使用FrameGrabber

有人能告诉我我在哪里做错了吗&#xff1f;这些是我遵循的步骤&#xff1a;>从Android开发者网站下载了adt-bundle-windows>创建了一个新项目和一个libs / armeabi文件夹>将所有* .so文件从javacv-android-arm.jar,opencv-2.4.3-android-arm.zip和ffmpeg-1.0-android-…

使用 Github Actions artifact 在 workflow job 之间共享数据

AgileConfig 在使用 react 编写UI后&#xff0c;变成了一个彻彻底底的前后端分离的项目&#xff0c;上一次解决了把react spa 跟asp.net core 站点集成起来ASP.NET Core 集成 React SPA 应用。本来我每次提交代码的时候都需要手动运行npm run build,然后把dist的内容复制到asp…

撤回的微信消息真的看不到?78行Python代码帮你看穿一切!

导读&#xff1a;Python曾经对我说&#xff1a;"时日不多&#xff0c;赶紧用Python"。于是看到了一个基于python的微信开源库&#xff1a;itchat&#xff0c;玩了一天&#xff0c;做了一个程序&#xff0c;把私聊撤回的信息可以收集起来并发送到个人微信的文件传输助…

WCF的用户名+密码认证方式

概述 今天在做Master Data Service&#xff08;后面简称MDS&#xff09;项目时需要通过WCF来使用MDS的API&#xff0c;从而对MDS的数据进行操作。在这个过程中&#xff0c;遇到了一个棘手的问题&#xff0c;就是在客户端调用Web Service时的身份认证问题&#xff0c;于是乎对WC…

lmbs PHP,PHP 清空 MySql 指定数据表中的所有数据

PHP 清空 MySql 指定数据表中的所有数据PHP 清空 MySql 指定数据表中的所有数据&#xff0c;在烈火小编在网上闲逛时&#xff0c;这是某技术博客的一篇文章&#xff0c;说是文章&#xff0c;并没有文字&#xff0c;只有代码&#xff0c;经过测试可以使用&#xff0c;现在分享给…

全网最通透的“闭包”认知 · 跨越语言

闭包作为前端面试的必考题目&#xff0c;常让1-3年工作经验的JavaScripter感到困惑&#xff0c;其实主流语言都有闭包。今天我们深入聊一聊[闭包]&#xff0c; 查缺补漏&#xff01;1. 以面试题 投石问路 2. 以C#闭包 庖丁解牛 3. 跨越语言 追本溯源 • 头等函数 •…

北大最神博士论文:为什么学校打印店老板大多是湖南人?

导读&#xff1a;北京大学社会学系博士冯军旗的一篇论文&#xff0c;虽然是话题看起来有些奇葩&#xff0c;但仍然考据严谨&#xff0c;很有价值。01 写在前面&#xff08;非论文部分&#xff09;多媒体出版行业中&#xff0c;充满油墨芬芳的印刷总是长盛不衰。特别是在大学校园…

php 谷歌语音,php 语音参考

如果文件内容是纯 PHP 代码&#xff0c;最好在文件末尾删除 PHP 结束标记。这可以避免在 PHP 结束标记之后万一意外加入了空格或者换行符&#xff0c;会导致 PHP 开始输出这些空白&#xff0c;而脚本中此时并无输出的意图。 /* This is a multi line commentyet another line …

技术分享 | jaeger链路日志实现

源宝导读&#xff1a;随着企业应用越来越复杂&#xff0c;内部的调用链条越来越长&#xff0c;性能问题也变得越来越难以定位和排查&#xff0c;为了应对此问题&#xff0c;我们在移动平台中引入了“jaeger调用链追踪工具”&#xff0c;帮助我们高效定位云端服务的性能问题。本…

IT资料,重磅来袭!

现在IT行业越来越火爆&#xff0c;技术的更新也越来越快&#xff0c;不好好充实自己的话&#xff0c;就会被淘汰。小编这几年一直有意识地收集IT行业相关的资料&#xff0c;现在已经拥有8G左右的资料&#xff0c;如区块链、Python、大数据、人工智能深度学习等方面的资料&#…

开启php的文件上传扩展,linux中如何通过php.ini添加扩展?

在编译安装的时候&#xff0c;我只通过了以下命令来安装&#xff0c;然后我想像windows中那样修改 php.ini 就开启了扩展./configure \--enable-fpm \--with-fpm-userwww-data \--with-fpm-groupwww-data \--enable-soap \--enable-mysqlnd \--with-mysqlimysqlnd \--with-pdo-…

[C#.NET 拾遗补漏]16:几个常见的TAP异步操作

在本系列上一篇文章 [15&#xff1a;异步编程基础] 中&#xff0c;我们讲到&#xff0c;现代应用程序广泛使用的是基于任务的异步编程模式&#xff08;TAP&#xff09;&#xff0c;历史的 EAP 和 AMP 模式已经过时不推荐使用。今天继续总结一下 TAP 的异步操作&#xff0c;比如…

荐书 | 10本书给你计算机大师思维

《黑客与画家》作者&#xff1a;保罗格雷厄姆 / 译者&#xff1a;阮一峰美国互联网界如日中天的教父、哈佛大学离经叛道的博士保罗格雷厄姆著作&#xff01;一本书&#xff0c;你不曾想到的视角&#xff0c;彻底颠覆你对世界的认识&#xff01;美国亚马逊、纽约时报超级畅销书&…

如何解决U盘无法停止通用卷设备

当我们使用完U盘&#xff0c;在电脑上安全删除时&#xff0c;电脑却提示&#xff1a;无法停止‘通用卷设备。这是什么问题呢&#xff1f;这时候不要硬拔哦&#xff0c;因为硬拔可能会损坏我们U盘的资料文件或者电脑的USB接口。正确的解决方法&#xff1a; 第一种&#xff1a; 往…