JavaのScannerクラスを使用して、カンマで区切られたdouble値とint値をスキャンしようとしています。Java - カンマで区切られたカンマ区切りのdouble値とint値
次のScanner input = new Scanner(System.in).useDelimiter("\\D");
は、,
で区切られたint値のみをスキャンできます。例えば入力= 1000,2,3
doubleとint値を,
で区切ってスキャンするにはどうすればよいですか?入力= 1000.00,3.25,5
または100.00,2,3.5
?
私は次のことを試してみましたが、彼らは仕事していないようです:
Scanner input = new Scanner(System.in).useDelimiter(",");
Scanner input = new Scanner(System.in).useDelimiter("\\,");
Scanner input = new Scanner(System.in).useDelimiter("[,]");
これらのコードを掛けるように思わ使用。サンプル入力を入力すると、スキャンされた変数に対してSystem.out.printlnが実行されませんでした。
以下は私のサンプルコードです:
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);
}
}
ソリューションは、以下のスキャナラインの更新
はそれを固定しているように見えるが見つかりました:
Scanner input = new Scanner(System.in).useDelimiter("[,\n]");
あなたのコードは私のために正常に動作しています。あなたの入力と出力は何ですか? – 4castle
@ 4castle、私の入力はすべて1行に1つの入力として '1000.00,3.25,1'です。入力を入力した後にコードがハングするので、出力はありません。私はOpenJDK Java 7になっています – j7an
@ eduardo-dennisコードが動作すると思います。最後のnextDouble()の後にどのようにコード化し、入力として '1000.00,3.25,1'を1行に入力するかというように、' input.nextLine(); 'でハングアップします。 – j7an