java.util.NoSuchElementException: No line found

d.nasir

Mitglied
Hallo,
ich bin im ersten Semester des Wirtschaftsinformatiks. Wir haben eine Aufgabe:
"Zwei leere Arrays sollen durch Einlesen von der Tastatur mit Strings gefüllt werden (die Größe
der Arrays wird ebenfalls eingelesen). Diese Arrays werden miteinander vereinigt. Danach soll
das neu entstandene Array alphabetisch sortiert werden. Ist dies erledigt, werden Duplikate aus
dem Array entfernt und das Resultat ausgegeben. Bei der Ausgabe werden die Worte aus dem
Array mit einem Leerzeichen getrennt."
Nun habe ich die Aufgabe wie folgt versucht zu lösen, aber ich bekomme bei der Eingabe des zweiten Arrays die Fehlermeldung "java.util.NoSuchElementException: No line found"
Mein Code:
[Java]public class ArraySpielerei {

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Bitte geben Sie die Länge des 1.Arrays ein: ");
int n = scanner.nextInt();
String[] array1 = new String[n];

System.out.print("Bitte geben Sie die Länge des 2.Arrays ein: ");
int m = scanner.nextInt();
String[] array2 = new String[m];

System.out.println("1.Array: ");
array1 = readWords(n);

System.out.println("2.Array: ");
array2 = readWords(m);

String[] array = mergeWords(array1, array2);

array = sortWords(array);
array = removeDuplicates(array);
printArray(array);
scanner.close();

}

public static String[] readWords(int sizeOfArray) {
Scanner scanner = new Scanner(System.in);
String[] array = new String[sizeOfArray];
for (int i = 0; i < sizeOfArray; i++) {
System.out.println("Bitte geben Sie " + (i + 1) + ". Wort ein: ");
String words = scanner.nextLine();
array = words;
}
scanner.close();
return array;

}

public static String[] mergeWords(String[] words, String[] words2) {
String[] mergedWords = new String[words.length + words2.length];
int n = 0;
for (int i = 0; i < mergedWords.length; i++) {
if (i < words.length) {
mergedWords = words;
} else {
mergedWords = words2[n];
n++;
}
}
return mergedWords;
}

public static String[] sortWords(String[] toSort) {
Arrays.sort(toSort);
return toSort;
}

public static String[] removeDuplicates(String[] sortedWords) {
for (int i = 0; i < sortedWords.length; i++) {
String erstesWort = sortedWords;
for (int n = i + 1; n < sortedWords.length; n++) {

if (erstesWort.equals(sortedWords[n])) {
String[] sortedWords2 = new String[sortedWords.length - 1];
for (int m = 0; m < i; m++) {
sortedWords2[m] = sortedWords[m];
}
for (int m = i; m < sortedWords2.length; m++) {
sortedWords2[m] = sortedWords[m + 1];
}
return removeDuplicates(sortedWords2);
}

}
}
return sortedWords;
}

public static void printArray(String[] array){
for(int i=0; i<array.length; i++){
System.out.print(array + " ");
}
}
}

[/Java]

Die Fehlermeldung lautet wie folgt:
Exception in thread "main" Bitte geben Sie 1. Wort ein:
java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1585)
at ArraySpielerei.readWords(ArraySpielerei.java:36)
at ArraySpielerei.main(ArraySpielerei.java:20)

Kann mir Bitte jemand helfen? Denn ich weiß nicht wie ich das ändern soll.
 

kaoZ

Top Contributor
Das Problem liegt irgendwo hier :

at java.util.Scanner.nextLine(Scanner.java:1585)
at ArraySpielerei.readWords(ArraySpielerei.java:36)

Dazu müsste man sich deine mergewords / readwords methoden mal genauer ansehen
 
Zuletzt bearbeitet:

d.nasir

Mitglied
So sieht es in der Konsole aus wenn ich das Programm durchführe:

Bitte geben Sie die Länge des 1.Arrays ein: 2
Bitte geben Sie die Länge des 2.Arrays ein: 3
1.Array:
Bitte geben Sie 1. Wort ein:
Informatik
Bitte geben Sie 2. Wort ein:
ist
2.Array:
Exception in thread "main" Bitte geben Sie 1. Wort ein:
java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1585)
at ArraySpielerei.readWords(ArraySpielerei.java:36)
at ArraySpielerei.main(ArraySpielerei.java:20)
 

kaoZ

Top Contributor
Ich habe das ganze mal mit einer Arraycopy gemacht , das scheint zu funktionieren :

Java:
public class Test{

	public static void main(String[] args){
		
		Scanner sc = new Scanner(System.in);
		
		System.out.println("Länge des ersten Arrays :");
		String[] input = new String[sc.nextInt()];
		
		System.out.println(input.length);

		String[] arr = readWords(input.length);
		
		String[] copy = Arrays.copyOf(arr, arr.length);
		
		String[] res = mergeWords(arr, copy);
		
		System.out.println(res.length);
		
		for (int i = 0; i < res.length; i++) {
			System.out.println(res[i]);
		}
		
	}
	
	public static String[] readWords(int sizeOfArray) {
		Scanner scanner = new Scanner(System.in);
		String[] array = new String[sizeOfArray];
		for (int i = 0; i < sizeOfArray; i++) {
			System.out.println("Bitte geben Sie " + (i + 1) + ". Wort ein: ");
			String words = scanner.nextLine();
			array[i] = words;
		}
		scanner.close();
		return array;
 
	}
	
	public static String[] mergeWords(String[] words, String[] words2) {
		String[] mergedWords = new String[words.length + words2.length];
		int n = 0;
		for (int i = 0; i < mergedWords.length; i++) {
			if (i < words.length) {
				mergedWords[i] = words[i];
			} else {
				mergedWords[i] = words2[n];
				n++;
			}
		}
		return mergedWords;
	}
}

Der fehler lässt sich also auf die eingabe des 2ten arrays eingrenzen.
 
Zuletzt bearbeitet:

d.nasir

Mitglied
Danke. Ich sollte ja das mit zwei Arrays machen und es soll ja nicht kopiert werden. Es sollen zwei Arrays sein, die durch den Benutzer gefüllt werden sollen.
 

kaoZ

Top Contributor
Es ging auch erstmal nur darum einzugrenzen wo genau der Fehler liegt und warum eine NSE Exception fliegt, was sagt der Debugger ?
 

kaoZ

Top Contributor
Wie erwartet liegt es also an einer deiner Methoden, wenn du den Scanner schlließt ist klar das dann nicht nochmal neu eingelesen werden kann ^^, ich hatte es mir allerdings auch nicht näher angeschaut aber joose hat ja den entscheidenden hinweis gegeben :)

EDIT : Deswegen funktionierte es auch mit einer Kopie des Arrays ;)
 
Zuletzt bearbeitet:

fhoffmann

Top Contributor
Du solltest dennoch noch aus der main-Methode das Erzeugen der Arrays entfernen.
Die Arrays werden in readWords erzeugt.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
D Lesen aus Datei (java.util.NoSuchElementException) Java Basics - Anfänger-Themen 22
"java.util.HashMap.get(Object)" is null Java Basics - Anfänger-Themen 10
BATMAN_2008 Jackson adding additional fields to JSON throws java.util.concurrent.CompletionException: Java Basics - Anfänger-Themen 2
R java.util.Set, CASE_INSENSITIVE_ORDER Java Basics - Anfänger-Themen 6
F Erste Schritte java.util.Scanner: Beliebig langen Text per Paste in Console eingeben ? Java Basics - Anfänger-Themen 14
N java.util.InputMismatchException Fehler Java Scanner Java Basics - Anfänger-Themen 5
C java.util Timer läuft zu langsam? Java Basics - Anfänger-Themen 1
B Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException Java Basics - Anfänger-Themen 8
L Zufälliges Objekt aus der ArraylList ohne java.util.Random Java Basics - Anfänger-Themen 56
A Java.util.Arrays Java Basics - Anfänger-Themen 15
F java.util.ArrayList Java Basics - Anfänger-Themen 3
B java.util.Date noch zeitgemäß? Java Basics - Anfänger-Themen 6
B java.util.Date berechnen Java Basics - Anfänger-Themen 11
M java.util.scanner Fehler Java Basics - Anfänger-Themen 5
Meeresgott OOP Richtig mit java.util.Property umgehen Java Basics - Anfänger-Themen 22
N java.util.Random - Zwei Zahlen mit festgesetzter Wahrscheinlichkeit? Java Basics - Anfänger-Themen 15
A Vererbungshierachie und java.util.Date Java Basics - Anfänger-Themen 31
W Erste Schritte import java.util.scanner funktioniert nicht Java Basics - Anfänger-Themen 2
I google java-diff-util - Patch abspeichern Java Basics - Anfänger-Themen 1
G Interface java.util.Comparator: Wieso muss nur die Methode compare() implementiert werden Java Basics - Anfänger-Themen 2
H Repräsentation von DateTime (Joda) in Java Util Date überführen Java Basics - Anfänger-Themen 3
P Variablen Abfangen von eingaben per java.util.Scanner und weiter Verarbeitung Java Basics - Anfänger-Themen 7
S Compiler-Fehler Scanner java.util NoSuchElementExeption Java Basics - Anfänger-Themen 8
W Methoden Rückgabedatentyp java.util.Map<java.lang.String,? extends ...> Java Basics - Anfänger-Themen 4
B ThreadPoolExecutor - import java.util.concurrent Java Basics - Anfänger-Themen 2
R java.util.Random Java Basics - Anfänger-Themen 8
S Methoden Sortieren: java.util.Arrays.useLegacyMergeSort Java Basics - Anfänger-Themen 4
F java.util.scanner wird übersprungen Java Basics - Anfänger-Themen 9
O java.util.Scanner hängt sich auf Java Basics - Anfänger-Themen 5
E Klassen java.util.ArrayList<E> als Generics Java Basics - Anfänger-Themen 16
D java.util.ResourceBundle - exception Java Basics - Anfänger-Themen 4
M Datentypen java.util.Arrays$ArrayList cannot be cast to [Ljava.lang.String; Java Basics - Anfänger-Themen 11
S Unterschied java.util.prefs / java.util.Properties Java Basics - Anfänger-Themen 3
M java.util.ArrayList to java.sql.Array Java Basics - Anfänger-Themen 4
D java.util.Currency Java Basics - Anfänger-Themen 2
T java.util.Date Java Basics - Anfänger-Themen 5
J java.util.format => mit String? Java Basics - Anfänger-Themen 2
N java.util.Random Java Basics - Anfänger-Themen 6
N verständnisfrage java.util.Calendar Java Basics - Anfänger-Themen 4
Luk10 Java.util.Scanner Java Basics - Anfänger-Themen 11
H ArrayList über java.util.Scanner füllen Java Basics - Anfänger-Themen 5
P ArrayList<E> in package java.util Java Basics - Anfänger-Themen 4
N java.util.Arrays.sort Warum sind Leerzeichen vor alphabetischen Zeichen sortiert? Java Basics - Anfänger-Themen 12
K java.util.ConcurrentModificationException problem in der Logik? Quaxli-Tutorial Java Basics - Anfänger-Themen 9
T import java.util.scanner cannot be resolved Java Basics - Anfänger-Themen 19
D java.util.Currency.getInstance exception mit brit. Pfund Java Basics - Anfänger-Themen 4
M Kann mir bitte jemand "java.util.ArrayList" erklären? Java Basics - Anfänger-Themen 5
V java.util.Stack Java Basics - Anfänger-Themen 9
J Java.Util.Properties wrapper class (Review Request) Java Basics - Anfänger-Themen 2
S BITTE UM HILFE HASHTABLE/import java.util.Hashtable in Ecplipse Java Basics - Anfänger-Themen 12
G DateFormat - Datumsformat java.util.Locale interpretieren Java Basics - Anfänger-Themen 2
? java.util.Properties Wert von key mehrfach vorhanden Java Basics - Anfänger-Themen 13
E java.util.ConcurrentModificationException Problem Java Basics - Anfänger-Themen 5
F java.util.ConcurrentModificationException Java Basics - Anfänger-Themen 8
Q java.util.loggging neue datei erstellen Java Basics - Anfänger-Themen 3
L Exception in thread "main" java.util.NoSuchElement Java Basics - Anfänger-Themen 4
hedges Würfelwurf mit java.util.Random ohne 0 Java Basics - Anfänger-Themen 6
W Java.util.Map in Bean wandeln Java Basics - Anfänger-Themen 2
M java.util.Timer und geplante Abarbeitung Java Basics - Anfänger-Themen 2
U java.util.Date to java.sql.Date Java Basics - Anfänger-Themen 2
K Wer kann mir java.util.Hastable erklären. Java Basics - Anfänger-Themen 3
K Probleme mit java.util.hashtable Java Basics - Anfänger-Themen 10
K Zipfile erstellen mit java.util.zip.* Java Basics - Anfänger-Themen 2
J Eclipse und printf und import util.java.scanner; Java Basics - Anfänger-Themen 4
G java.util.LinkedList: Doppelte Elemente vermeiden Java Basics - Anfänger-Themen 5
K Prob mit java.util.regex.matches-String wird nicht erkannt? Java Basics - Anfänger-Themen 9
T Möchte Charwert 23C° mit java.util.Scanner einlesen macht Pr Java Basics - Anfänger-Themen 2
K java.util.Calendar und Objekt Java Basics - Anfänger-Themen 7
M Seltsames java.util.Date Problem Java Basics - Anfänger-Themen 6
M java.util.Scanner kann nicht aufgelöst werden - warum nicht? Java Basics - Anfänger-Themen 4
RaoulDuke java.util.Date parsen Java Basics - Anfänger-Themen 5
M Source Code von java.util.SubList Java Basics - Anfänger-Themen 2
ff java.util.date Java Basics - Anfänger-Themen 2
O reguläre Ausdrücke bei java.util.regex.Pattern Java Basics - Anfänger-Themen 4
K Keine weitere (java.util.)Scanner Eingabemöglichkeit? Java Basics - Anfänger-Themen 5
A wie implementiere ich java.util.Scanner? Java Basics - Anfänger-Themen 12
D Mit java.util.Arrays.sort die negativen Zahlen hinten Java Basics - Anfänger-Themen 4
C java.util.Timer und wait() oder so was Java Basics - Anfänger-Themen 3
G Leere java.util.List erzeugen Java Basics - Anfänger-Themen 2
S java.awt.List vs. java.util.List Java Basics - Anfänger-Themen 2
D dumme Frage! (was heist 'import java.util.*;' ?) Java Basics - Anfänger-Themen 3
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62

Ähnliche Java Themen

Neue Themen


Oben