gpt4 book ai didi

java - 在 Java 中使用百分比符号作为用户输入

转载 作者:行者123 更新时间:2023-12-01 19:31:43 25 4
gpt4 key购买 nike

如果我想让用户输入一个利率,格式为:n%(n是 float )。

鉴于 % 不是要输入的有效数字,是否有办法获取用户输入,然后执行必要的转换?

基本上有一种方法可以让以下代码实际工作:

import java.util.Scanner;

public class CanThisWork{

public static void main(String[] args){

Scanner input = new Scanner(System.in);
System.out.println("Enter Annual Interest Rate");

//user input is 5.4% for example

//this is where the problem is because a double data type cannot contain the % symbol:
double rate = input.nextDouble();

System.out.println("Your Annual rate " + rate + " is an error");
}
}

抛开所有笑话,我很想找到解决这个困境的方法

最佳答案

因为 5.4% 不是 Double,因此您必须使用 Scanner 方法来读取字符串作为输入,例如 nextnextLine。但是为了确保正在读取的字符串是双结尾的%,您可以使用hasNext(String pattern)方法。

if (input.hasNext("^[0-9]{1,}(.[0-9]*)?%$")) {
String inputString = input.next();
double rate = Double.parseDouble(inputString.substring(0, inputString.length() - 1));
System.out.println("Your Annual rate " + rate + " is an error");
}

// Pattern explanation
^ - Start of string
[0-9]{1,} - ensure that at least one character is number
[.[0-9]*]* - . can follow any number which can be followed by any number
%$ - ensure that string must end with %

以上代码将确保仅传递以 % 结尾的 Double 数字

关于java - 在 Java 中使用百分比符号作为用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59519667/

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