Java 如何使用扫描仪或缓冲读取器读取输入文件,并统计输入文件中出现的所有特定字符
如何使用扫描仪或bufferedreader读取文件并计算文件中的所有字母“B” 现在,我用扫描器读取文件,每次遇到“B”时,我都要计算一个int,为了检查字符串中的下一个字符,也要计算一个int,但它只适用于第一行,因为当j达到13时,我会得到一个越界异常(输入文件每行有13个字符,然后是换行符) 我尝试过在空格上拆分,但它告诉我每次都有零个“B”,这不是真的;Java 如何使用扫描仪或缓冲读取器读取输入文件,并统计输入文件中出现的所有特定字符,java,Java,如何使用扫描仪或bufferedreader读取文件并计算文件中的所有字母“B” 现在,我用扫描器读取文件,每次遇到“B”时,我都要计算一个int,为了检查字符串中的下一个字符,也要计算一个int,但它只适用于第一行,因为当j达到13时,我会得到一个越界异常(输入文件每行有13个字符,然后是换行符) 我尝试过在空格上拆分,但它告诉我每次都有零个“B”,这不是真的; static int count; while(input.hasNext()) { String line=input.next(
static int count;
while(input.hasNext())
{
String line=input.next();
getCount(line);
}
private static int getCount(String line)
{
char[] arr=line.toCharArray();
for(int i=0;i<arr.length;i++)
{
if(arr[i]=='B')
count ++;
}
}
while(input.hasNext())
{
String line=input.next();
getCount(行);
}
私有静态int getCount(字符串行)
{
char[]arr=line.toCharArray();
对于(int i=0;i我认为这就是您要寻找的,您可以这样使用它:
int occurences=0;
while(input.hasNext())
{
String line=input.next();
occurences+=StringUtils.countMatches(line, "B");
}
System.out.println("There are "+occurences+" occurences of the character B in the file.");
解决此问题的更简单方法是设置扫描仪的分隔符:
input.useDelimiter("");
然后,每当下一个令牌等于“B”时,递增计数器:
while (input.hasNext()) {
if (input.next().equals("B"))
b++;
}
while (input.hasNext()) {
if (input.next().equals("B"))
b++;
}