I'm trying to use Java's Scanner class to scan in double and int values delimited by commas.
The following Scanner input = new Scanner(System.in).useDelimiter("\D");
can only scan int values separated by ,
. e.g. input = 1000,2,3
How do I scan in double and int values separated by ,
e.g. input = 1000.00,3.25,5
or 100.00,2,3.5
?
I tried the following but they don't seem to work:
Scanner input = new Scanner(System.in).useDelimiter(",");
Scanner input = new Scanner(System.in).useDelimiter("\,");
Scanner input = new Scanner(System.in).useDelimiter("[,]");
Using these seems to hang the code. After entering the example input, System.out.println did not execute for the scanned in variables.
Below is my sample code:
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);
}
}
Solution found
Updating the Scanner line to the following seem to have fixed it:
Scanner input = new Scanner(System.in).useDelimiter("[,
]");
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…