Java - Durch Kommas getrennte Double- und Int-Werte werden gescannt.

Ich versuche, mit der Java-Scannerklasse doppelte und durch Kommas getrennte int-Werte zu scannen.

FolgendeScanner input = new Scanner(System.in).useDelimiter("\\D"); kann nur Int-Werte scannen, die durch @ getrennt si,. z.B. input =1000,2,3

Wie scanne ich Double- und Int-Werte, die durch @ getrennt sin, z.B. input =1000.00,3.25,5 oder100.00,2,3.5?

Ich habe Folgendes versucht, aber sie scheinen nicht zu funktionieren:

Scanner input = new Scanner(System.in).useDelimiter(",");
Scanner input = new Scanner(System.in).useDelimiter("\\,");
Scanner input = new Scanner(System.in).useDelimiter("[,]");

Mit diesen scheint der Code zu hängen. Nach Eingabe der Beispieleingabe wurde System.out.println für die eingelesenen Variablen nicht ausgeführt.

Below ist mein Beispielcode:

import java.io.*;
import java.util.Scanner;

public class Solution {
  public static void main(String args[] ) throws Exception {
    /* Enter your code here. Read input from STDIN. Print output to STDOUT */
    System.out.print("Enter your values: ");
    // Scanner input = new Scanner(System.in).useDelimiter("\\D");
    Scanner input = new Scanner(System.in).useDelimiter(",");
    // Scanner input = new Scanner(System.in).useDelimiter("\\,");
    // Scanner input = new Scanner(System.in).useDelimiter("[,]");

    double investmentAmount = input.nextDouble();
    double monthlyInterestRate = input.nextDouble() / 100 / 12;
    double numberOfYears = input.nextDouble();
    double duration = numberOfYears * 12;

    double futureInvestmentValue = investmentAmount * Math.pow((1 + monthlyInterestRate), duration);
    System.out.println(investmentAmount);
    System.out.println(monthlyInterestRate);
    System.out.println(numberOfYears);
    System.out.println(duration);
    System.out.println("Accumulated value is " + futureInvestmentValue);
  }
}

Lösung gefunden

Updating der Scanner-Zeile auf die folgende scheint es behoben zu haben:

Scanner input = new Scanner(System.in).useDelimiter("[,\n]");

Antworten auf die Frage(4)

Ihre Antwort auf die Frage