Day_13【IO流】扩展案例2_统计键盘录入字符在指定项目文件中出现的次数
分析以下需求,并用代码实现
键盘录入一个字符(以字符串的形式录入)
判断当前字符在info3.txt当中是否存在
如果不存在, 给出提示
如果存在, 请统计出该字符出现的次数 Info3.txt内容如下:
abcdefghijklmnopqrstuvwxyz,mnopqrstuvwxyz,mnopqrstuvwxyz,mnopqrstuvwxyz
思路
1.键盘录入要查找的字符
2.创建输入流对象关联info3.txt
3.创建StringBuilder用于存储读取到的所有字符
4.将读取到的字符添加到StringBuilder当中
5.调用indexOf方法判断键盘录入的字符是否存在, 如果返回-1说明不存在
6.如果存在的话, 将StringBuilder拆分成字符数组
7.遍历字符数组, 获取到每一个字符
8.跟键盘录入的字符逐个进行匹配 (不要忘了将字符转换为字符串)
9.打印出现的次数
代码
package com.itheima;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) throws IOException {
//键盘录入要查找的字符
Scanner sc = new Scanner(System.in);
System.out.println("请输入要查找的字符");
String str = sc.nextLine();
//创建输入流对象关联info3.txt
FileInputStream fis = new FileInputStream("/Users/zhaozhuang/Downloads/develop/subject/day13-IO流/homework/day13作业答案/TestDay13/info3.txt");
//创建StringBuilder用于存储读取到的所有字符
StringBuilder sb = new StringBuilder();
//将读取到的字符添加到StringBuilder当中
int len;
while((len = fis.read()) != -1) {
char c = (char) len;
sb.append(c);
}
//调用indexOf方法判断键盘录入的字符是否存在, 如果返回-1说明不存在
if(sb.indexOf(str) != -1) {
//如果存在的话, 将StringBuilder拆分成字符数组
int count = 0;
char[] chs = sb.toString().toCharArray();
//遍历字符数组, 获取到每一个字符
for(char c : chs) {
//跟键盘录入的字符逐个进行匹配 (不要忘了将字符转换为字符串)
if(str.equals(c + "")) {
count++;
}
}
System.out.println(str+"一共出现了"+count+"次");
}
}
}
控制台内容
Day_13【IO流】扩展案例2_统计键盘录入字符在指定项目文件中出现的次数的更多相关文章
- Day_13【IO流】扩展案例2_统计指定项目文件中字符出现的次数
需求分析 统计当前项目下info2.txt文件中, 每个字符出现的个数 文件内容如下: welcome to itheima!!! 最终效果如下: w(1) (2)!(3)t(2)e(3)c(1)a( ...
- Java:IO流的综合用法(从键盘录入数据并打印在控制台上)
import java.io.*; public class IOTestDouble { public static void main(String[] args)throws Exception ...
- Java基础知识强化之网络编程笔记09:TCP之客户端键盘录入服务器写到文本文件中
1. TCP之客户端键盘录入服务器写到文本文件中 (1)客户端: package cn.itcast_09; import java.io.BufferedReader; import java.io ...
- Java实现统计某字符串在另一个字符串中出现的次数
面试时会经常考这样的题目,估计也不让使用正则表达式.还好这个算法还算简单,不过在草稿纸上写难免会出现运行异常,好吧,面试官赢了,乃们屌丝就实实在在的把代码码出来吧. 谢谢“心扉”对我代码bug的纠正, ...
- java统计一个子串在指定字符串中出现的次数
今天查着用了用String类里的几个方法,分享下代码 题目要求:统计一个子串在指定字符串中出现的次数( 提示java字串出现了6次) public class SearchSameString { p ...
- Day_14【IO流】扩展案例2_缓冲字符输出、输入流进行用户名的创建
需求分析 1.项目根目录下建立文件: user.txt,文件中存放用户名和登录密码,格式:用户名,密码,如:aaa,123: 2.user.txt文件中初始存放的用户信息有如下: jack,123 r ...
- Day_12【集合】扩展案例2_键盘录入一个字符串,对其进行去重,并将去重后的字符串组成新数组
需求分析:键盘读取一行输入,去掉其中重复字符, 打印出不同的那些字符 思路: 1.键盘录入字符串 2.遍历字符串,将每个字符存储到集合中 3.将集合中重复的字符去掉 4.创建新集合,遍历老集合,获取老 ...
- IO流的学习以及统计次数最多的单词
IO流: 处理数据类型:字节流(InputStream OutputStream)和字节流(Reader Writer) 数据流向不同:输入流和输出流(FileInputStream File ...
- Day_09【常用API】扩展案例2_测试小字符串在大字符串中出现的次数
分析以下需求,并用代码实现 1.键盘录入一个大字符串,再录入一个小字符串 2.统计小字符串在大字符串中出现的次数 3.代码运行打印格式: 请输入大字符串: woaiheima,heimabutongy ...
随机推荐
- Spring Cloud 系列之 Gateway 服务网关(一)
什么是 Spring Cloud Gateway Spring Cloud Gateway 作为 Spring Cloud 生态系统中的网关,目标是替代 Netflix Zuul,其不仅提供统一的路由 ...
- Calendar日历类
package com.yhqtv.demo02.ThreadPool; import java.util.Calendar; import java.util.Date; /* * java.uti ...
- Linux网络编程(2)
Preview 基于上一篇博客,本文将继续展开TCP面向连接的,客户端以及服务端各自需要进行的操作,我们按照真实TCP连接的顺序,分别阐述客户端socket(), connect()以及服务端sock ...
- 在手机和电脑间双向加密传输文件 —— Windows 安装 Kde Connect
2020-04-27 作为 Kde 项目的一部分,Windows 用户可能很少知道它,但它确实存在,而且超棒. Kde Connect 简直了,现在我的手机和 Linux 主机以及 Win 本完全是一 ...
- 来自BAT大厂前端工程师的自白-怎么才能学好前端
如果说理解学好web前端是先能找到一份工作,那么你应该这样做: 1.制定好一下系统的web前端学习规划,每天定量,学完什么知识点就掌握,能自己应用,而不是能看懂,写不出来东西. 2.不要自己一个人闷头 ...
- [Python进阶].pyc的那点事
1. 什么是 .pyc文件 .pyc文件 就是 Python的字节码(byte-compiled)文件..py文件运行时,python会自动将其编译成PyCodeObject并写入.pyc文件,再有p ...
- JVM 真的很难学么?不、只是你“不敢学”而已
JVM 真的很难学么?不.只是你"不敢学"而已 许多招聘的信息上面都说,要了解jvm.多线程什么的对于 java 程序员来说,这是工作好多年的程序员都不一定能掌握的东 ...
- php continue 跳出多重循环
来源参考:https://blog.csdn.net/xyy94813/article/details/50834938 /* * 在PHP中break语句不仅可以跳出当前循环,还可以指定跳出几层循环 ...
- php里的闭包函数
一个匿名函数内要获取外部的变量必须要使用use: $message = 'hello'; $example = function() use ($message){ var_dump($message ...
- Windows 切换 working directory
用函数 _chdir() 例如用计划任务启动,pwd 是 system32 使用相对路径的地方会出错. 在 main 函数刚启动的时候转换一下 working directory 可解.