【问题标题】:How can I grab an integer of any length from a string input如何从字符串输入中获取任意长度的整数
【发布时间】:2015-10-15 14:34:42
【问题描述】:

所以我一直在尝试编写一个程序,它能够从字符串输入中获取任何整数,尽管它的长度。如果整数的长度为 1,我只能得到它。这是我到目前为止的代码,其中包含我编写的另一个类的方法。

Scanner input = new Scanner(System.in);
Object user1 = new Object();
String user1Input = null;
System.out.println("Please enter coins");
user1Input = input.nextLine();
while(!(user1Input.contains("end"))){
    if(user1Input.contains("Quarters")){
        user1.depositQuarters(Character.getNumericValue(user1Input.charAt(0)));
    }
}

所以到目前为止,我有这个代码,假设我输入“2 Quarters”,它将返回 0.50 美元的余额,但如果我输入“20 Quarters”,它也会返回 0.50 美元。我尝试了另一种声明另一个变量的方法

System.out.println("Please enter coins");
int coins = input.nextInt();
String user1Input = input.nextLine();

然后,带有 if 语句的相同 while 循环紧随其后并返回错误。 任何帮助,将不胜感激。谢谢

【问题讨论】:

标签: java string input int


【解决方案1】:

如果您想保留第一种方法,可以更改 user1Input 以替换“ Quarters”部分。像这样:

user1.depositQuarters(Integer.parseInt(user1Input.replace(" Quarters", "")));

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    请试试这个(我已经测试过代码);如果可行,请将第二个“System.out.println”替换为“user1.depositQuarters”:

    Scanner input = new Scanner(System.in);
    Object user1 = new Object();
    String user1Input = null;
    System.out.println("Please enter coins");
    user1Input = input.nextLine();
    while(!(user1Input.contains("end"))){
        if(user1Input.contains("Quarters")){
            System.out.println(Integer.parseInt(user1Input.split(" ")[0]));
            break;
        }
    }
    

    谢谢!

    【讨论】:

      【解决方案3】:

      扫描仪可能会为您完成所有工作:

      int ncoins = input.nextInt();
      int coinName = input.nextLine().trim();
      

      将输入“40 Quarters”给您 40 的 ncoins 和“Quarters”的 coinName。

      即使在数字前面或名称后面有空格也可以使用。

      【讨论】:

        猜你喜欢
        • 2012-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-05
        • 2011-05-13
        相关资源
        最近更新 更多