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)。參見編輯 –