Java - 对于指定的数据文件.统计数据行,大写字符,小写字符,分隔符,以及其他字符数据情况
Posted 小智RE0
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java - 对于指定的数据文件.统计数据行,大写字符,小写字符,分隔符,以及其他字符数据情况相关的知识,希望对你有一定的参考价值。
示例文件位置; filePath
示例文件内容
完成demo代码
package com.lzq;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/**
* @BelongsProject: xiaozhire0goods
* @BelongsPackage: com.lzq
* @Author: 小智RE0 --- 学习记录
* @Date: 2022/12/17 13:18
* @Description: TODO
*/
public class DemOperFileInfo
public static void main(String[] args)
//文件位置
String filePath = "F:\\\\资料Demo\\\\demoTxt.txt";
File file = new File(filePath);
//若该路径文件不存在,先创建空文件;
if (!file.exists())
file.mkdir();
//调用方法;
List<PlineInfo> plineInfoList = getLineInfo(file);
for (PlineInfo plineInfo : plineInfoList)
System.out.println("---------");
System.out.println( "当前数据行: "+plineInfo.getLineInfo());
System.out.println( "当前数据包含大写字符数: "+plineInfo.getUppers());
System.out.println( "当前数据包含小写字符数: "+plineInfo.getLowers());
System.out.println( "当前数据包含数字字符数: "+plineInfo.getNumbers());
System.out.println( "当前数据包含分隔字符数: "+plineInfo.getSeParators());
System.out.println( "当前数据包含其他字符数: "+plineInfo.getOthers());
System.out.println("---------");
//todo 需要实现的函数;
/**
* 实现对文件进行数据分析处理
* @param file 源文件
*/
private static List<PlineInfo> getLineInfo(File file)
//需要返回的结果;
List<PlineInfo> plineInfoList = new ArrayList<>();
//指定要输入的文件;当文件不存在,会抛异常
FileReader fr = null;
BufferedReader br = null;
try
fr = new FileReader(file);
//创建缓冲输入流对象;
br = new BufferedReader(fr);
//创建缓冲输出流对象;
String lineStr = null;
//设置循环,到文本末尾时停止;一行一行地读取字符;
int lineNum = 1;
while ((lineStr = br.readLine()) != null)
//当前行字符总个数;
int totalSize = lineStr.length();
//统计处理
PlineInfo plineInfo = new PlineInfo();
plineInfo.setLineInfo(lineNum);
//统计大写字符;
int upperNum = recordUpper(lineStr);
plineInfo.setUppers(upperNum);
//统计小写字符;
int lowerNum = recordLower(lineStr);
plineInfo.setLowers(lowerNum);
//统计数字
int numNum = recordNumber(lineStr);
plineInfo.setNumbers(numNum);
//统计分隔符;
int seParatorsNum= recordSeParators(lineStr);
plineInfo.setSeParators(seParatorsNum);
//其他字符个数; 即总数减去其他个数;
int otherNum = totalSize - upperNum - lowerNum - numNum - seParatorsNum;
plineInfo.setOthers(otherNum);
plineInfoList.add(plineInfo);
//行数递增;
lineNum++;
catch (Exception e)
e.printStackTrace();
finally
//关闭流;释放系统资源;
if (br != null)
try
br.close();
catch (IOException e)
e.printStackTrace();
if (fr != null)
try
fr.close();
catch (IOException e)
e.printStackTrace();
return plineInfoList;
//记录大写字符
static int recordUpper(String str)
int count = 0;
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++)
if( chars[i] >='A' && chars[i] <='Z')
count ++;
return count;
//记录小写字符
static int recordLower(String str)
int count = 0;
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++)
if(chars[i] >='a' && chars[i] <='z')
count ++;
return count;
//记录数字
static int recordNumber(String str)
int count = 0;
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++)
if(chars[i] >='0' && chars[i] <='9')
count ++;
return count;
//统计分隔字符
static int recordSeParators(String str)
int count = 0;
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++)
//空格 英文逗号 中文逗号 中文句号 英文句号 换行符 \\n 中英文分号 各种制表符
if(chars[i] ==' ' || chars[i] ==',' || chars[i] == ','
|| chars[i] == '。' || chars[i] == '.' ||chars[i] == '\\n'
||chars[i] == ';' ||chars[i] == ';'
||chars[i] == '\\t')
count ++;
return count;
//数据类
static class PlineInfo
//文件行号;
int lineInfo;
//大写字符
int Uppers;
//小写字符
int Lowers;
//数字字符
int Numbers;
//换行符,指标符啥的
int seParators;
//其他字符;
int others;
public PlineInfo()
public PlineInfo(int lineInfo, int uppers, int lowers, int numbers, int seParators, int others)
this.lineInfo = lineInfo;
Uppers = uppers;
Lowers = lowers;
Numbers = numbers;
this.seParators = seParators;
this.others = others;
public int getLineInfo()
return lineInfo;
public void setLineInfo(int lineInfo)
this.lineInfo = lineInfo;
public int getUppers()
return Uppers;
public void setUppers(int uppers)
Uppers = uppers;
public int getLowers()
return Lowers;
public void setLowers(int lowers)
Lowers = lowers;
public int getNumbers()
return Numbers;
public void setNumbers(int numbers)
Numbers = numbers;
public int getSeParators()
return seParators;
public void setSeParators(int seParators)
this.seParators = seParators;
public int getOthers()
return others;
public void setOthers(int others)
this.others = others;
运行之,效果
以上是关于Java - 对于指定的数据文件.统计数据行,大写字符,小写字符,分隔符,以及其他字符数据情况的主要内容,如果未能解决你的问题,请参考以下文章