我试图让我的代码读取一个txt文件,然后吐出一个角色出现的次数。
所以如果txt文件读取。
"我的我有多大了?"
如果我输入m,我需要它吐出3,但是使用下面的代码,我一直得到1.它不会读取大写字母。请帮忙吗?
public static void main(String[] args) throws IOException {
String fileName;
String inputLetter;
int count = 0;
fileName = JOptionPane.showInputDialog("Enter the filename: ");
inputLetter = JOptionPane.showInputDialog("Enter a letter contained " +
"in a string.");
inputLetter.toLowerCase();
char letterAsChar = inputLetter.charAt(0);
File file = new File(fileName);
Scanner inputFile = new Scanner(file);
while (inputFile.hasNext())
{
String holdLine = inputFile.nextLine();
for (int i = 0; i < holdLine.length(); i++)
if (holdLine.charAt(i) == letterAsChar ||
holdLine.charAt(i) == Character.toUpperCase(letterAsChar))
{
count++;
}
}
System.out.println(count);
答案 0 :(得分:1)
方法toLowerCase和friends返回一个String,因此您必须始终保存结果:
inputLetter = inputLetter.toLowerCase();
最好转换整行以便进行更简单的处理:
String holdLine = inputFile.nextLine().toLowerCase();
if (holdLine.charAt(i) == letterAsChar){
count++;
}
答案 1 :(得分:0)
这样做
Character.toUpperCase(holdLine.charAt(i)))==Character.toUpperCase(letterAsChar))
两边都用小写或大写比较