Я работаю над простым проектом, я взял его из Веб-сайт, что дает некоторую возможность улучшить свои навыки кодирования в java.
import java.util.Scanner;
public class Test1 {
public void test() {
Scanner in = new Scanner(System.in);
System.out.println("enter something :");
String str = in.nextLine();
StringBuilder sb = new StringBuilder(str);
if (str.isEmpty()) {
System.out.println("you should write something");
}
if (str.length()<=30){
System.out.println("reverse : "+sb.reverse());
}else {
System.out.println("Error");
}
System.out.println("----------------------");
}
public static void main(String[] args) {
Test1 c = new Test1 ();
for (int i = 1; i <= 10 ; i++) {
System.out.println("case number : " +i);
c.test();
}
}
}
case number : 1
enter something : ayoub
reverse : buoya
----------------------
...loop continue ..
Мой код работает так, как я хочу, в терминале eclipse, но когда я помещаю его в «редактор кода» веб-сайта, этот последний дает мне ошибку времени выполнения, которая говорит:
Exception in thread "main" java.util.NoSuchElementException: No line found at java.util.Scanner.nextLine(Scanner.java:1540)
at Test1.test(Test1.java:10)
at Test1.main(Test1.java:31)
Я попытался найти в StackOverflow некоторые решения, но не нашел.
Как упомянул @arcy, я думаю, что это связано с «редактором кода». Я попробовал этот компилятор онлайн и, похоже, столкнулся с той же проблемой. Принимая во внимание, что тестирование того же кода работало в Netbeans.




Вы, вероятно, используете онлайн-редактор/компилятор кода Java, который не имеет ввода stdin.
Как заявил дугообразный, вы, вероятно, используете IDE со встроенным консольным окном, которое позволяет вам передавать стандартные входные данные в вашу программу.
Следующий онлайн-редактор позволит вам добавить входные данные.
Вы должны позаботиться о том, как вы используете метод nextLineScanner:
Исключение, которое вы получаете, является результатом того, что сканер не получает никаких входных данных, как видно из здесь. Я предлагаю вам реорганизовать цикл на сканере, используя метод hasNextLine из Сканер.
@ayoubelmohamedi Рад помочь, приятель.
Использовали терминал IntelliJ IDEA. В программе установки проекта есть несколько пакетов с основными методами, просто чтобы посмотреть, как обстоят дела с многопоточностью (из-за лени). Используются задачи Gradle для запуска основных методов из пакетов в качестве задач. Сканер никогда не ждал ввода пользователя. Однако, если то же самое делается в основном классе, сборка и запуск как jar, чем работает нормально. К сожалению, мне потребовалось полдня, чтобы решить эту проблему. До сих пор не знаю, почему это происходит.
Просто догадываюсь, поскольку у вас недостаточно информации: eclipse мог подключить System.in к окну консоли, чтобы вы могли вводить туда данные. Я не знаю, что делает «редактор кода» веб-сайта, но он может ожидать ввода из какого-то места, где вы не можете его ввести. В будущем постарайтесь определить, с чем конкретно вы работаете — например, имя упомянутого вами «редактора кода» — и, поскольку у вас есть номер строки в трассировке стека, определите строку кода, которую вы разместили, которая соответствует эта линия.