我知道之前可能已经提出过这个问题,但在浏览了其他问题后,我无法找到解决问题的方法。 所以我试图计算某个字符出现在.txt文件中的次数。我的代码可以计算一个字符出现的次数,但它不会忽略字母的情况,所以当它应该输出15'a'而不是13'a'因为我的.txt中有两个大写字母A.文件。
这是我的代码:
import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
public class Program6 {
ArrayList<Integer> countOfLetters;
int count(String filename, char ch)
{
System.out.println(ch);
File fin = new File(filename);
Scanner scan = null;
try{
}
catch(Exception e)
{
}
return 0;
}
void writeCountResult ( String filename )
{
File fin = new File(filename);
}
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
Program6 program6 = new Program6();
String filename = "xanadu.txt";
program6.countOfLetters = new ArrayList<Integer>();
for(int i=65;i<91;i++)
{
int num = program6.count(filename,(char)i);
program6.countOfLetters.add(num);
}
program6.writeCountResult("output.txt");
//This code counts the number of times "a" appears in the file but not "A" BufferedReader reader = new BufferedReader(new FileReader("xanadu.txt"));
int ch;
char charToSearch='a';
int counter=0;
while((ch=reader.read()) != -1) {
if(charToSearch == (char)ch) {
counter++;
}
};
reader.close();
System.out.println(counter);
}
}
第2部分:现在编写另一种方法,在名为“output.txt”的文件中写入上述任意三个字母的计数。使用以下方法标头:void writeCountResult(String filename)。正如您所看到的,这已经存在于我的代码中,但我不知道下一步该将字符计入另一个txt文件中的output.txt。
答案 0 :(得分:2)
修改 if 语句,检查charToSearch是否等于该字符的大写版本。
if (charToSearch == Character.toLowerCase((char)ch) || charToSearch == Character.toUpperCase((char)ch) {
counter++;
}
答案 1 :(得分:0)
chIn是您要搜索的char变量。
int asci;
asci = br.read();
if(asci >=65 && asci <= 90)
asci += 32;
if (chIn >= 65 && chIn<=90)
chIn+= 32;
if(asci == chIn)
count++;
您可以尝试使用上述逻辑来计算大小写字符。