gpt4 book ai didi

java - 为什么我会陷入无限循环

转载 作者:行者123 更新时间:2023-11-30 04:30:11 25 4
gpt4 key购买 nike

我刚刚编写了一个程序,该程序应该扫描文件并计算行数、元音和许多其他内容,但当我运行它时,它会进入无限循环。我很确定它与我不太熟悉的 .hasNext().hasNextLine() 方法有关

import java.util.*;
import java.io.*;
/**
*
*
*/
public class Wordcount1 {


public static void main(String[] args) {
int vowels=0;
int punctuation=0;
int sentences=0;
int words=0;
int lines=0;
int alphaNumeric=0;

try{
Scanner input = new Scanner(System.in);
System.out.println("Enter file name: ");

File file = new File(input.nextLine());
Scanner fileReader = new Scanner(file);

while(fileReader.hasNextLine()){
lines +=1;
}
while(fileReader.hasNext()){
{ fileReader.next();
words +=1;
}
String word = fileReader.next();
for (int i=0; i<word.length();i++){
char ch= word.charAt(i);
if(ch=='a'||ch=='e'||ch=='i'||ch=='o'||ch=='u')
vowels +=1;
if((ch=='!'||ch=='.'||ch=='?'))
sentences +=1;
if(Character.isLetterOrDigit(ch))
alphaNumeric +=1;
switch(ch){
case ',':
punctuation +=1;
break;
case '[':
punctuation +=1;
break;
case ']':
punctuation +=1;
break;
case ':':
punctuation +=1;
break;
case '`':
punctuation +=1;
break;
case '-':
punctuation +=1;
break;
case '!':
punctuation +=1;
break;
case '_':
punctuation +=1;
break;
case '(':
punctuation +=1;
break;
case ')':
punctuation +=1;
break;
case '.':
punctuation +=1;
break;
case '?':
punctuation +=1;
break;
case '"':
punctuation +=1;
break;
case ';':
punctuation +=1;
break;

}

}
}
System.out.println("The number of words in the file name: " + words);
System.out.println("The number of lines in the file name: " + lines);
System.out.println("The number of alphanumeric characters: "
+ "in the file name: " + alphaNumeric);
System.out.println("The number of sentences in the file name: "
+ sentences);
System.out.println("The number of vowels in the file name: " + vowels);
System.out.println("The number of punctuations in the file name: "
+ punctuation);

}catch(FileNotFoundException e){
e.printStackTrace();
}
}
}

最佳答案

while(fileReader.hasNextLine()){
lines +=1;
}

在这里,您反复询问文件“还有更多行吗”,但实际上从未消耗任何行。因此,它不断回答“是的,我还有更多线路”。

关于java - 为什么我会陷入无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14823405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com