gpt4 book ai didi

Java - 扫描逗号分隔的 double 值和整数值

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:37:09 26 4
gpt4 key购买 nike

我正在尝试使用 Java 的 Scanner 类来扫描以逗号分隔的 double 和 int 值。

下面的Scanner input = new Scanner(System.in).useDelimiter("\\D");只能扫描,分隔的int值。例如输入 = 1000,2,3

如何扫描由 , 分隔的 double 和 int 值,例如输入 = 1000.00,3.25,5100.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并没有为扫描的in变量执行。

下面是我的示例代码:

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 行更新为以下内容似乎已修复它:

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

最佳答案

很可能您有 Locale 问题并且您的 Scanner 尝试使用逗号分隔符解析 double ,但您将逗号设置为扫描器分隔符。尝试以下解决方案:

Scanner input = new Scanner(System.in)
.useDelimiter(",")
.useLocale(Locale.ENGLISH);

这会将 double 定界符设置为点,您的逗号分隔 double 应该可以正常工作。

确保将逗号放在输入的末尾以解析最后一个值,例如1000.00,3.25,5,(甚至可能是您输入无效的主要原因)

关于Java - 扫描逗号分隔的 double 值和整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40027915/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com