Примерно неделю я изучал и практиковал Java через веб-сайт mooc.fi, и теперь, когда мне нужно было написать программу, вычисляющую среднее положительное число, я получил первую ошибку, из-за которой я не вижу решения, как избавиться от нее.
Однако я поискал и нашел все, что связано с проблемой со сканером и его закрытием? На том этапе курса, на котором я сейчас нахожусь, информации о "закрытии" сканера не было.
Я могу им полноценно пользоваться. С помощью сканера я вставляю случайные числа, программа суммирует их, а затем делит на количество чисел, которые я вставил. Но каждый раз, когда я пытаюсь отправить программу через TMC, выдает ошибку.
Любая помощь и ответы приветствуются, просто будьте немного внимательны, поскольку я все еще новичок ^^'
Мой написанный код:
import java.util.Scanner;
public class AverageOfPositiveNumbers {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int positive = 0;
int num = 0;
double avg = 0;
while (true) {
int input = Integer.valueOf(scanner.nextLine());
if (input > 0) {
positive = positive + input;
num = num + 1;
} else if (input == 0 && num > 0) {
avg = (double) positive / (double) num;
System.out.println(avg);
break;
} else if (input == 0 && num == 0) {
System.out.println("Cannot calculate the average");
}
}
}
}
Подробное сообщение об ошибке:
Произошло что-то неожиданное. Метод public static void main(String[] args) класса AverageOfPositiveNumbers исчез, или ваша программа аварийно завершилась из-за исключения. Дополнительная информация: java.util.NoSuchElementException: строка не найдена
Assert.java:88: org.junit.Assert.fail
AverageOfPositiveNumbersTest.java:56: AverageOfPositiveNumbersTest.callMain
AverageOfPositiveNumbersTest.java:39: AverageOfPositiveNumbersTest.test
AverageOfPositiveNumbersTest.java:17: AverageOfPositiveNumbersTest.test1
NativeMethodAccessorImpl.java:-2: jdk.internal.reflect.NativeMethodAccessorImpl.invoke0
NativeMethodAccessorImpl.java:62: jdk.internal.reflect.NativeMethodAccessorImpl.invoke
DelegatingMethodAccessorImpl.java:43: jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke
Method.java:566: java.lang.reflect.Method.invoke FrameworkMethod.java:47: org.junit.runners.model.FrameworkMethod$1.runReflectiveCall
ReflectiveCallable.java:12: org.junit.internal.runners.model.ReflectiveCallable.run
FrameworkMethod.java:44: org.junit.runners.model.FrameworkMethod.invokeExplosically
InvokeMethod.java:17: org.junit.internal.runners.statements.InvokeMethod.evaluate
FailOnTimeout.java:74: org.junit.internal.runners.statements.FailOnTimeout$StatementThread.run
Тестовый код:
import fi.helsinki.cs.tmc.edutestutils.MockStdio;
import fi.helsinki.cs.tmc.edutestutils.Points;
import fi.helsinki.cs.tmc.edutestutils.ReflectionUtils;
import java.lang.reflect.Method;
import org.junit.*;
import static org.junit.Assert.*;
@Points("02-13")
public class AverageOfPositiveNumbersTest {
@Rule
public MockStdio io = new MockStdio();
@Test(timeout = 1000)
public void test1() {
test("0\n", "nnot", "0", "1", "-1");
}
@Test(timeout = 1000)
public void test2() {
test("1\n2\n0\n", "1.5", "0");
}
@Test(timeout = 1000)
public void test3() {
test("-1\n3\n0\n", "3.0", "1");
}
@Test(timeout = 1000)
public void test4() {
test("1\n1\n1\n0\n", "1.0", "0.3", "0.7");
}
public void test(String input, String expected, String... notExpected) {
int oldOut = io.getSysOut().length();
io.setSysIn(input);
callMain(AverageOfPositiveNumbers.class);
String out = io.getSysOut().substring(oldOut);
assertTrue("When input was:\n" + input + ", the expected out put was:\n" + expected + "\nOutput was not found.", out.contains(expected));
for (String unexpected : notExpected) {
assertFalse("When input was:\n" + input + ", output shouldn't contain:\n" + unexpected + "", out.contains(unexpected));
}
}
private void callMain(Class kl) {
try {
kl = ReflectionUtils.newInstanceOfClass(kl);
String[] t = null;
String x[] = new String[0];
Method m = ReflectionUtils.requireMethod(kl, "main", x.getClass());
ReflectionUtils.invokeMethod(Void.TYPE, m, null, (Object) x);
} catch (Throwable e) {
fail("Something unexpected happened. The public static void main(String[] args) method of '" + kl + "' class has disappeared \n"
+ "or your program crashed because of an exception. More info: " + e);
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... -the-cause
«java.util.NoSuchElementException: строка не найдена», но я не могу найти причину ⇐ JAVA
Программисты JAVA общаются здесь
1767290480
Anonymous
Примерно неделю я изучал и практиковал Java через веб-сайт mooc.fi, и теперь, когда мне нужно было написать программу, вычисляющую среднее положительное число, я получил первую ошибку, из-за которой я не вижу решения, как избавиться от нее.
Однако я поискал и нашел все, что связано с проблемой со сканером и его закрытием? На том этапе курса, на котором я сейчас нахожусь, информации о "закрытии" сканера не было.
Я могу им полноценно пользоваться. С помощью сканера я вставляю случайные числа, программа суммирует их, а затем делит на количество чисел, которые я вставил. Но каждый раз, когда я пытаюсь отправить программу через TMC, выдает ошибку.
Любая помощь и ответы приветствуются, просто будьте немного внимательны, поскольку я все еще новичок ^^'
[b]Мой написанный код:[/b]
import java.util.Scanner;
public class AverageOfPositiveNumbers {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int positive = 0;
int num = 0;
double avg = 0;
while (true) {
int input = Integer.valueOf(scanner.nextLine());
if (input > 0) {
positive = positive + input;
num = num + 1;
} else if (input == 0 && num > 0) {
avg = (double) positive / (double) num;
System.out.println(avg);
break;
} else if (input == 0 && num == 0) {
System.out.println("Cannot calculate the average");
}
}
}
}
[b]Подробное сообщение об ошибке:[/b]
Произошло что-то неожиданное. Метод public static void main(String[] args) класса AverageOfPositiveNumbers исчез, или ваша программа аварийно завершилась из-за исключения. Дополнительная информация: java.util.NoSuchElementException: строка не найдена
Assert.java:88: org.junit.Assert.fail
AverageOfPositiveNumbersTest.java:56: AverageOfPositiveNumbersTest.callMain
AverageOfPositiveNumbersTest.java:39: AverageOfPositiveNumbersTest.test
AverageOfPositiveNumbersTest.java:17: AverageOfPositiveNumbersTest.test1
NativeMethodAccessorImpl.java:-2: jdk.internal.reflect.NativeMethodAccessorImpl.invoke0
NativeMethodAccessorImpl.java:62: jdk.internal.reflect.NativeMethodAccessorImpl.invoke
DelegatingMethodAccessorImpl.java:43: jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke
Method.java:566: java.lang.reflect.Method.invoke FrameworkMethod.java:47: org.junit.runners.model.FrameworkMethod$1.runReflectiveCall
ReflectiveCallable.java:12: org.junit.internal.runners.model.ReflectiveCallable.run
FrameworkMethod.java:44: org.junit.runners.model.FrameworkMethod.invokeExplosically
InvokeMethod.java:17: org.junit.internal.runners.statements.InvokeMethod.evaluate
FailOnTimeout.java:74: org.junit.internal.runners.statements.FailOnTimeout$StatementThread.run
Тестовый код:
import fi.helsinki.cs.tmc.edutestutils.MockStdio;
import fi.helsinki.cs.tmc.edutestutils.Points;
import fi.helsinki.cs.tmc.edutestutils.ReflectionUtils;
import java.lang.reflect.Method;
import org.junit.*;
import static org.junit.Assert.*;
@Points("02-13")
public class AverageOfPositiveNumbersTest {
@Rule
public MockStdio io = new MockStdio();
@Test(timeout = 1000)
public void test1() {
test("0\n", "nnot", "0", "1", "-1");
}
@Test(timeout = 1000)
public void test2() {
test("1\n2\n0\n", "1.5", "0");
}
@Test(timeout = 1000)
public void test3() {
test("-1\n3\n0\n", "3.0", "1");
}
@Test(timeout = 1000)
public void test4() {
test("1\n1\n1\n0\n", "1.0", "0.3", "0.7");
}
public void test(String input, String expected, String... notExpected) {
int oldOut = io.getSysOut().length();
io.setSysIn(input);
callMain(AverageOfPositiveNumbers.class);
String out = io.getSysOut().substring(oldOut);
assertTrue("When input was:\n" + input + ", the expected out put was:\n" + expected + "\nOutput was not found.", out.contains(expected));
for (String unexpected : notExpected) {
assertFalse("When input was:\n" + input + ", output shouldn't contain:\n" + unexpected + "", out.contains(unexpected));
}
}
private void callMain(Class kl) {
try {
kl = ReflectionUtils.newInstanceOfClass(kl);
String[] t = null;
String x[] = new String[0];
Method m = ReflectionUtils.requireMethod(kl, "main", x.getClass());
ReflectionUtils.invokeMethod(Void.TYPE, m, null, (Object) x);
} catch (Throwable e) {
fail("Something unexpected happened. The public static void main(String[] args) method of '" + kl + "' class has disappeared \n"
+ "or your program crashed because of an exception. More info: " + e);
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79858665/java-util-nosuchelementexception-no-line-found-but-i-cant-find-the-cause[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия