Java實(shí)現(xiàn)統(tǒng)計(jì)文件夾下所有文件的字?jǐn)?shù)
統(tǒng)計(jì)文件夾下所有.md文件的字?jǐn)?shù)
示例代碼
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.regex.Pattern;
public class WordCounter {
private static final Pattern WORD_PATTERN = Pattern.compile("[a-zA-Z]+|[\u4e00-\u9fa5]");
private static long totalWords = 0;
public static void main(String[] args) throws IOException {
Path startPath = Paths.get("path/to/your/directory"); // replace with your directory
Files.walkFileTree(startPath, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
if (file.toString().endsWith(".md")) {
totalWords += countWords(file);
}
return FileVisitResult.CONTINUE;
}
private long countWords(Path file) throws IOException {
long count = 0;
try (BufferedReader reader = Files.newBufferedReader(file, StandardCharsets.UTF_8)) {
String line;
while ((line = reader.readLine()) != null) {
count += WORD_PATTERN.split(line).length;
}
}
return count;
}
@Override
public FileVisitResult postVisitDirectory(Path dir, IOException exc) {
System.out.println("Visited directory: " + dir + ", total words: " + totalWords);
return FileVisitResult.CONTINUE;
}
});
System.out.println("Total words in all .md files: " + totalWords);
}
}
方法補(bǔ)充
除了上文的方法,小編還為大家整理了其他實(shí)現(xiàn)統(tǒng)計(jì)文件字?jǐn)?shù)的方法,希望對大家有所幫助
Java統(tǒng)計(jì)文檔的字?jǐn)?shù)
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class WordCount {
public static void main(String[] args) {
// 讀取文檔路徑
String filePath = "path/to/your/document.txt";
try {
// 創(chuàng)建文件對象
File file = new File(filePath);
// 創(chuàng)建Scanner對象,用于讀取文件內(nèi)容
Scanner scanner = new Scanner(file);
// 統(tǒng)計(jì)字符個數(shù)的變量
int count = 0;
// 逐行讀取文件內(nèi)容,并統(tǒng)計(jì)字符個數(shù)
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
count += line.replaceAll("\\s+", "").length();
}
// 輸出統(tǒng)計(jì)結(jié)果
System.out.println("文檔的字?jǐn)?shù)是:" + count);
// 關(guān)閉Scanner對象
scanner.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}Java獲取文件字?jǐn)?shù)
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class WordCount {
public static void main(String[] args) {
String filename = "example.txt"; // 替換為要統(tǒng)計(jì)字?jǐn)?shù)的文件路徑
int wordCount = 0;
int spaceCount = 0;
int punctuationCount = 0;
try (BufferedReader reader = new BufferedReader(new FileReader(filename))) {
String line;
while ((line = reader.readLine()) != null) {
String[] words = line.split("\\s+");
wordCount += words.length;
spaceCount += words.length - 1;
for (char c : line.toCharArray()) {
if (Character.isWhitespace(c)) {
spaceCount++;
} else if (Character.isLetterOrDigit(c) || Character.isSpaceChar(c)) {
// do nothing
} else {
punctuationCount++;
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("字?jǐn)?shù): " + wordCount);
System.out.println("空格數(shù): " + spaceCount);
System.out.println("標(biāo)點(diǎn)符號數(shù): " + punctuationCount);
}
}用python統(tǒng)計(jì)一個文件夾下的所有文件的中文字?jǐn)?shù)
import os
DirPath = 'D:/下載/docs'
resultArray = []
listCount = 0
content = ''
resultCount = 0
def check_contain_chinese(check_str, fileName):
countResult = 0
for ch in check_str:
if u'\u4e00' <= ch <= u'\u9fff':
countResult += 1
resultArray.append(countResult)
print(str(fileName) + "文件的中文字?jǐn)?shù)是:" + str(countResult) + '\n')
if __name__ == "__main__":
for item in os.listdir(DirPath):
print(DirPath + '/' + item)
listCount += 1
f = open(DirPath + '/' + item, 'r', encoding='utf-8')
content = f.read()
check_contain_chinese(content, item)
for num in resultArray:
resultCount += num
print("累計(jì)文件個數(shù):" + str(listCount) + "個")
print("累計(jì)中文字符:" + str(resultCount) + "個")到此這篇關(guān)于Java實(shí)現(xiàn)統(tǒng)計(jì)文件夾下所有文件的字?jǐn)?shù)的文章就介紹到這了,更多相關(guān)Java統(tǒng)計(jì)文件字?jǐn)?shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot中@ComponentScan注解過濾排除不加載某個類的3種方法
這篇文章主要給大家介紹了關(guān)于SpringBoot中@ComponentScan注解過濾排除不加載某個類的3種方法,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用SpringBoot具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2023-07-07
使用Spring Data Jpa的CriteriaQuery一個陷阱
使用Spring Data Jpa的CriteriaQuery進(jìn)行動態(tài)條件查詢時,可能會遇到一個陷阱,當(dāng)條件為空時,查詢不到任何結(jié)果,并不是期望的返回所有結(jié)果。這是為什么呢?2020-11-11
SpringBoot靜態(tài)方法調(diào)用Spring容器bean的三種解決方案
在SpringBoot中靜態(tài)方法調(diào)用Spring容器bean時出現(xiàn)的null值問題,本文就來介紹一下SpringBoot靜態(tài)方法調(diào)用Spring容器bean的三種解決方案,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01
SpringAOP中基于注解實(shí)現(xiàn)通用日志打印方法詳解
這篇文章主要介紹了SpringAOP中基于注解實(shí)現(xiàn)通用日志打印方法詳解,在日常開發(fā)中,項(xiàng)目里日志是必不可少的,一般有業(yè)務(wù)日志,數(shù)據(jù)庫日志,異常日志等,主要用于幫助程序猿后期排查一些生產(chǎn)中的bug,需要的朋友可以參考下2023-12-12
Spring Boot使用Thymeleaf + Gradle構(gòu)建war到Tomcat
今天小編就為大家分享一篇關(guān)于Spring Boot使用Thymeleaf + Gradle構(gòu)建war到Tomcat,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12

