В настоящее время я занимаюсь базовым курсом программирования. Учитель отказывается смотреть на мой код и пытается угадать вопрос, который я задаю, и затем ответить на этот (неверный) вопрос. Основой этого является то, что он должен принимать уравнение, такое как 5 * 6, и вывод «Пять раз шесть равен 30», причем ответ просто является числом. Код у меня прямо сейчас, как, например:Простой математический калькулятор
package mainPackage;
import java.util.*;
public class Main
{
public static void main(String[]args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Please enter the equation");
String input = scan.nextLine();
String space = " ";
int firstSpace = 0;
int secondSpace = 0;
int numInt1 = 0;
int numInt2 = 0;
String a = "0";
char b = 'a';
String c = "0";
firstSpace = input.indexOf(space);
String sub = input.substring((firstSpace + 1), input.length());
secondSpace = sub.indexOf(space);
a = input.substring(firstSpace--);
b = input.charAt(firstSpace++);
c = input.substring(secondSpace++);
numInt1 = Integer.parseInt(a);
numInt2 = Integer.parseInt(c);
String num1 = "";
String op = "";
String num2 = "";
switch (numInt1)
{
case 0:
{
num1 = "Zero";
}
case 1:
{
num1 = "One";
}
case 2:
{
num1 = "Two";
}
case 3:
{
num1 = "Three";
}
case 4:
{
num1 = "Four";
}
case 5:
{
num1 = "Five";
}
case 6:
{
num1 = "Six";
}
case 7:
{
num1 = "Seven";
}
case 8:
{
num1 = "Eight";
}
case 9:
{
num1 = "Nine";
}
}
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
Она рассказала нам, что между каждым номером и операндом, она поместит пространство. Таким образом, вместо 5/6 это будет 5/6, и нам нужно сделать это только с 0 до 9, но все же нужно определить, добавляет ли она двузначный номер и печатает неверный номер. Эта часть, которую я знаю, как это сделать. Проблема возникает, когда я пытаюсь запустить это. Никакие ошибки не обнаруживаются в линиях, но когда я запускаю его, я получаю это:
Exception in thread "main" java.lang.NumberFormatException: For input string: " * 6"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at mainPackage.Main.main(Main.java:44)
Это заканчивает тем, что эта линия:
numInt1 = Integer.parseInt(a);
При удалении их, код печатает что-то вроде это:
"5
* 6
* 6"
Кто-нибудь знает, почему это происходит? Мне кажется, что это что-то больно очевидное, что я пропустил.
EDIT: Спасибо вам большое за ваши быстрые ответы. Она никогда не учила нас методу разделения. Еще раз спасибо!
привет, добро пожаловать на сайт. Вы пробовали отладку? Если вы используете Eclipse, вы можете запустить его в режиме отладки, установить точки останова и шаг за шагом выполнить шаг за шагом. – ashes999
'a = input.substring (firstSpace -);' должно быть 'a = input.substring (0, firstSpace -);' – Phylogenesis