Ich habe immer verwendet, während (scanner.hasNext()) {} Methode zu aus der Datei lesen und dann das Programm die ganze Zeit ausführen. Aber ich habe bemerkt, dass die CPU-Auslastung drastisch gestiegen ist, selbst wenn das Programm (Eclipse) den Prozess beendet hat, und es wird nicht vollständig aufhören, bis ich diesen Knopf drücke. Beenden der Eclipse mit Code (in Java)
Ich habe auch diese Funktion, System.exit (0), um das Programm zu stoppen, aber ich muss noch die Taste drücken.
Gibt es einen Fehler in meinem Code, der das Programm nicht stoppen lässt.
public class HW3
{
/*
Description
*/
public static void main(String[] args) throws FileNotFoundException
{
final File file1 = new File(args[0]);
final File file2 = new File(args[1]);
final Scanner sc1 = new Scanner(file1);
HW3 instance = new HW3();
while (sc1.hasNext()) {
print(instance.splitSentence(sc1.nextLine()));
}
sc1.close();
final Scanner sc2 = new Scanner(file2);
while (sc2.hasNext()) {
}
System.exit(1);
}
public void constructTreeNode(String[] stringArray) {
}
private String[] splitSentence (String sentence) {
int wordCount = 1;
for (int i = 0; i < sentence.length(); i++) {
if (sentence.charAt(i) == ' ') {
wordCount++;
}
}
String[] arr = new String[wordCount];
wordCount = 0;
String temp = "";
for (int i = 0; i < sentence.length(); i++) {
if (sentence.charAt(i) == ' ' || i == sentence.length() - 1) {
arr[wordCount] = temp;
wordCount++;
temp = "";
} else {
temp += sentence.charAt(i);
}
}
return arr;
}
private static void print (String[] arr) {
for(String e : arr) {
System.out.println(e);
}
}
}
while (sc2.hasNext()) ohne Körper wird eine Endlosschleife, sicher sein? Sie lesen keine Informationen vom Scanner. Sie müssen tatsächlich Daten vom Scanner lesen (next() oder nextLine() würden wahrscheinlich das sein, was Sie wollen), sonst würde die Datei niemals irgendwelche Zeilen lesen und somit immer true von hasNext() zurückgeben. – Zachary
Ich dachte hasNext(), selbst hat eine Funktion, um zur nächsten Zeile zu springen. Da ich dieses Problem vorher noch nicht hatte, war dies mein beispielloser Fehler für mich :(. Danke trotzdem. – sbot
Ich habe ähnliche Fehler gemacht. Obwohl, wenn es in die nächste Zeile gesprungen wäre, könntest du nicht lesen die aktuelle Zeile (oder der Versuch, eine Zeile zu lesen, würde einen anderen überspringen) – Zachary