Ich bin groß genug, um ein Java-Projekt zu erstellen und zu starten, die den Benutzer zur Eingabe von Wörtern auffordert, und wenn "done" tippt, druckt das Programm eine sortierte String-Liste.Run failed java.util.NoSuchElementException
Wenn ich das Projekt mit dem Befehl Gradle -build erstellen, wird es erfolgreich erstellt, aber wenn ich versuche, es auszuführen, sieht es aus wie Gradle "lass mich nicht Zeit" ein Wort einzugeben, und dann Gradle sagen ich "keine Linie gefunden". Hier
ist ein Extrakt aus meiner Funktion void enter_words() in meinem Java-Programm:
System.out.println("Enter a word");
str=sc.nextLine();
Hier ist, was Gradle mir gesagt, wenn ich den gradle Fahrbefehl in der Shell verwenden:
C:\Users\celine\Desktop\test2>gradle run
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:runMain
Enter a word // the program is running but I can't enter a word
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1585)
at d.Project1.enter_words(Project1.java:42)
at d.Project1.main(Project1.java:81)
:runMain FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':runMain'.
> Process 'command 'C:\Program Files\Java\jdk1.7.0_40\bin\java.exe'' finished wi
th non-zero exit value 1
Hier ist mein Java-Programm:
package com.gumgum.test;
import java.util.Arrays;
import java.util.Scanner;
import org.apache.commons.lang.StringUtils;
public class Project1 {
private int max;
private String[] userInputs;
// constructors
public Project1() {
max=100;
userInputs = new String[max];
}
public Project1(int n) {
max=n;
userInputs = new String[max];
}
//getter
String[] getUserInputs() {
return userInputs;
}
//setter: all words entered by the users are written in tab
public void setUserInputs(String[] tab, int position, String str) {
tab[position]=str;
}
//demande à l'utilisateur d'entrer un mot
public void enter_words() {
Scanner sc = new Scanner(System.in);
int countWords=0;
String str="";
while ((countWords<3) || (str.equals("done")!=true)) {
System.out.println("Enter a word");
str=sc.nextLine();
if (StringUtils.isBlank(str) == true)
System.out.println("Please enter a valid word");
else if (str.length()<=2)
System.out.println("Please enter at least 3 characters");
if ((str.length()>=3) && (StringUtils.isBlank(str) != true)) {
switch(str) {
case "done" :
if (countWords<3)
System.out.println("Please enter at least three words");
break;
default:
setUserInputs(this.userInputs,countWords,str);
countWords++;
break;
}
}
}
}
public void lexico_order(String[] tab) {
int i=0;
System.out.println("");
while(tab[i]!=null) {
i++;
}
int k=0;
Arrays.sort(tab, k, i);
System.out.println("****** Sorted String List *******");
for (int j=0;j<i;j++)
System.out.println(tab[j]);
}
public static void main(String[] args) {
Project1 p;
p = new Project1();
p.enter_words();
System.out.printf("ca marche");
p.lexico_order(p.getUserInputs());
}
}