0
我知道这个问题以前可能已经被问过了,但是在浏览了其他问题之后,我找不到解决我的问题的方法。 所以我试图计算某个字符出现在.txt文件中的次数。我的代码能够计算出一个字符出现的次数,但它不会忽略该字母的大小写,所以当它输出15'a'而不是13'a'时,因为在我的.txt中有两个大写字母A文件。Java计算一个字符出现在一个文件中的次数
这里是我的代码:
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。
也许'如果(charToSearch == Character.toUpperCase((char)的CH ||(charToSearch == Character.toLowerCase((char)的CH)'是一个更强大的方式,因为其他方式的功能赢得了如果你只输入'A'而不是'a' – KyrSt
我添加了代码,它仍然给出相同的输出13 – New2AllThis
尝试使用Character.compare(char x,char y)。参见编辑 –