迅雷一道比较基础的笔试面试题目:Java实现统计某一目录下每个文件中出现的字母个数、数字个数、空格个数及行数?
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
public class FileCount {
public static void ReadSubdirectory(File myDir) {
// 判断myDir是否为文件目录
if (myDir.isDirectory()) {
File[] subFile = myDir.listFiles();
for (int i = 0; i < subFile.length; i++) {
// 如果列表下含有子目录
if (subFile[i].isDirectory()) {
ReadSubdirectory(subFile[i]);
} else {
ReadSubFile(subFile[i]);
}
}
}
}
// 统计当前文件中数字 字母 空格的个数 和 文件行数
public static void ReadSubFile(File file) {
int numCount = 0;// 数字个数
int letterCount = 0;// 字母个数
int spaceCount = 0;// 空格个数
int lineCount = 0;//行数
int uniChar = 0;
try {
FileInputStream input = new FileInputStream(file);
while ((uniChar = input.read()) != -1) {
if (uniChar >= 48 && uniChar <= 57) {// 判断是否是数字
numCount++;
} else if ((uniChar >= 65 && uniChar <= 90) || (uniChar >= 97 && uniChar <= 122)) {// 判断是否是字母
letterCount++;
} else if (uniChar == 32) {// 判断是否是空格
spaceCount++;
}
}
BufferedReader buffer = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
while(buffer.readLine() != null) {
lineCount++;
}
System.out.println(file.getAbsolutePath());
System.out.println(" 数字个数 : " + numCount);
System.out.println(" 字母个数 : " + letterCount);
System.out.println(" 空格个数 : " + spaceCount);
System.out.println(" 行数数 : " + lineCount);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
ReadSubdirectory(new File("D://src"));
}
}
分享到:
相关推荐
Java实现统计某一目录下每个文件中出现的字母个数、数字个数、空格个数及行数
实现统计某一目录下每个文件的文件名称及其中出现的字母个数、数字个数、空格个数及行数
在编程领域,`wc`(word count)是一个常见的命令行工具,用于统计文件中的单词数、字符数和行数。这个工具在Unix和Linux系统中非常流行,但在Java环境中,我们可以自定义实现类似的功能。本篇文章将深入探讨如何...
本文将深入探讨如何使用Java来读取文件,并统计其中字母、数字、空格以及行数。这个功能对于文本分析或者日志处理等场景非常实用。 首先,我们需要引入Java的`java.io`包,它包含了进行文件操作所需的所有类。在...
上述文件中列出了一系列Java编程练习题,这些题目覆盖了Java编程的基础知识,适合初学者进行编程练习。下面我将详细解释每个练习题的知识点。 1. 兔子繁殖问题(斐波那契数列) 题目描述了著名的斐波那契数列问题,...
- 如果第一个字母相同,则需要进一步判断第二个字母。 - 注意处理大小写字母的问题,可以通过转换为统一的大写或小写来简化逻辑。 #### 程序23: 求100之内的素数 - **目标**: 找出100以内所有的素数。 - **程序...
- **实现思路**:通过for循环遍历100到999之间的每一个数字,对于每个数字分别提取百位、十位、个位数字,计算它们的立方和并与原数比较。 #### 4. 分解质因数 - **题目解析**:分解数字90的质因数,并输出90 = 2 *...
【程序 7】 输入一行字符并统计字母、空格、数字和其他字符的个数,可以使用while循环读取字符,然后根据字符类型增加计数器。 【程序 8】 计算s=a+aa+aaa+...的值,需要知道项数,然后逐项累加。关键在于计算每一...
- 使用条件判断语句(如if语句)判断每个字符是否为字母或数字,并相应增加计数器的值。 #### 8. 数字序列求和 - **题目描述**:给定一个数字a,计算a + aa + aaa + aaaa + aaaaa的值。 - **解题思路**: - 使用...
- 每个数位可以选择1、2、3、4中的任意一个数字。 - 确保每一位数字都不相同。 #### 奖金计算 - **题目概述**:题目要求根据公司的利润I,按照不同的利润段计算应发放的奖金总数。 - **实现思路**: - 使用多个...
在Java中,通过循环遍历100到999之间的所有数字,然后计算每位数字的立方和来找到水仙花数。 2. **素数判断**: 素数是大于1且只有1和它本身两个正因数的自然数。Java程序可以通过检查一个数是否能被2到它本身减1...
【程序 7】统计字符类型的个数,如字母、空格、数字和其他字符,可以使用字符判断和计数变量。在Java中,可以利用`Character.isLetter()`、`Character.isDigit()`等方法进行判断。 【程序 8】这道题要求计算一个...
【程序 7】读取一行字符,统计其中的字母、空格、数字和其他字符数量。使用循环和条件判断,根据字符类型增加对应的计数器。 【程序 8】此题要求计算特定形式的数字序列和,例如s=2+22+222+...。通过计算每个项的值...
可以使用数组或哈希表来存储每个字母的频率。 #### 题目八:计算特定序列的和 - **描述**:给定一个数a,计算a + aa + aaa + ... 的和。 - **解析**:通过循环构建序列中的每个部分,然后将其累加得到总和。例如,...
这层循环用于输出每一行开始前的空格数,`lay - i`计算出当前行需要的空格数量,确保每行的星号居中对齐。 #### 3.4 第三层循环 ```java for (int j = 1; j * i - 1; j++) { ... } ``` 此循环用于控制每一行中星号...
在给定的代码中,通过for循环遍历100到999之间的所有数,用模运算和除法获取每一位数字,然后检查是否满足水仙花数的条件。这是一个基础的数学问题与编程结合的例子。 2. **素数判断**: - 代码展示了如何找出100...
描述中提到的“任意选取一个字母”,意味着用户可能有选择字母的自由,而程序会根据所选的字母生成相应的图形。在这个例子中,我们关注的是字母“H”的图形表示。程序会根据字母形状的几何特性,用星号(*)在"data....
2. **读文件统计**:这段代码展示了如何读取一个文件的每一行,并统计其中的字母、数字、空格和行数。使用`BufferedReader`来逐行读取文件,`readLine()`方法获取每行内容。将每一行转化为字符数组,遍历数组检查每...
- **题目**:统计字符串中的空格个数。 - **知识点**: - 遍历字符串,使用条件语句判断每个字符是否为空格。 - 使用计数器记录空格出现的次数。 ### 10. 条件分支 - **题目**:根据输入的数字,输出对应的等级...