文本文件,统计里面字符和出现的次数,最好把出现最多次的字符给显示出来。

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Collections;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

public class Homework2 {
public static void main(String[] args){
demo(new File(“d:\作业.txt”));
}
public static void demo(File file){
BufferedReader bfr = null; //定义字符读取(缓冲)流
try{
bfr = new BufferedReader(new FileReader(file));//给该流赋值
String value = null; //定义一个临时接收文件中的字符串变量
String newValue = “”; //接收文件中所有字符串的变量
while((value = bfr.readLine())!=null){ //开始读取文件中的字符
newValue = newValue+value; //存入newValue变量中
}
char[] ch = newValue.toCharArray();//把newValue变成字符数组
TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>(Collections.re

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的C++程序,可以统计文本文件某个字符串的出现次数并输出出现位置: ```cpp #include <iostream> #include <fstream> #include <vector> #include <string> using namespace std; int main() { string file_name = "test.txt"; // 文本文件名 string target_str = "hello"; // 目标字符串 vector<int> positions; // 记录目标字符出现位置的向量 int count = 0; // 记录目标字符出现次数的计数器 // 打开文本文件 ifstream infile(file_name); if (!infile.is_open()) { cout << "无法打开文件" << endl; return -1; } // 逐行读取文本文件 string line; int line_num = 1; // 记录当前行号 while (getline(infile, line)) { // 在当前行查找目标字符串 size_t pos = line.find(target_str); while (pos != string::npos) { // 记录目标字符出现位置 positions.push_back(pos + line_num * (target_str.length() + 1)); count++; // 继续在当前行查找目标字符串 pos = line.find(target_str, pos + 1); } // 增加行号 line_num++; } // 输出统计结果 cout << "出现次数:" << count << endl; cout << "出现位置:"; for (int i = 0; i < positions.size(); i++) { cout << positions[i]; if (i < positions.size() - 1) cout << ", "; } cout << endl; // 关闭文本文件 infile.close(); return 0; } ``` 代码解释: 1. 第1行到第5行是头文件和命名空间声明。 2. 第7行到第10行定义了程序的入口函数 `main()`,并声明了需要用到的变量。 3. 第12行和第13行分别指定了要读取的文本文件名和要查找的目标字符串。 4. 第14行定义了一个 `vector` 类型的变量 `positions`,用于记录目标字符出现的位置。 5. 第15行定义了一个整型变量 `count`,用于记录目标字符出现次数。 6. 第18行到第27行打开文本文件并逐行读取其内容,通过 `string::find()` 函数查找目标字符串在当前行的位置,并将位置记录在 `positions` 向量。如果目标字符串在当前行出现多次,需要多次查找并记录位置。这里使用了 `while` 循环来实现。 7. 第29行到第38行输出统计结果。其,第31行输出了目标字符出现次数,第32行输出了目标字符出现的位置,注意要在相邻的位置之间加上逗号,方便查看结果。 8. 第41行关闭文本文件。 9. 最后,程序返回值为0,表示正常结束。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值