キーボードから文字列を入力しなければならない運動をしています。文字列は、「2 + 4 + 6-8+3-7」などの単純な算術演算になります。はい、フォーマットはこのようにする必要があります。間に単一のスペース。
アイデアは、この文字列を取得し、最終的にそれに対する答えを印刷することです。これまでのところ、これは私のコードです:
public class AddemUp {
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
System.out.print("Enter something like 8 + 33 + 1345 + 137: ");
String s = kb.nextLine();
Scanner sc = new Scanner(s);
sc.useDelimiter("\\s*\\+\\s*|\\s*\\-\\s*");
int sum = 0;
int theInt;
Scanner sc1 = new Scanner(s);
sc1.useDelimiter("\\s*\\s*");
String plusOrMinus = sc1.next();
int count = 0;
if(s.startsWith("-"))
{
sum -= sc.nextInt();
}
while(sc.hasNextInt())
{
theInt = sc.nextInt();
if(count == 0)
{
sum += theInt;
}
else if(plusOrMinus.equals("+"))
{
sum += theInt;
}
else
{
sum -= theInt;
}
sc1.next();
count++;
}
System.out.println("Sum is: " + sum);
}
}
}
「sc1.delimiter」がある25行目では、コードですべての整数を(スペースとともに)スキップし、「+」または「-」のいずれかのみを分離する方法がわかりません。これが達成されたら、それをwhileループに実装するだけです。