如何从字符串输入中获取任意长度的整数

时间:2015-10-15 14:34:42

标签: java string input int

所以我一直在尝试编写一个程序,它可以从字符串输入中获取任何整数,尽管它的长度。如果整数的长度是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循环跟随此并返回错误。 任何帮助,将不胜感激。感谢

3 个答案:

答案 0 :(得分:0)

如果您想继续使用第一种方法,可以更改user1Input以替换"季度"一部分。像这样:

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

希望这会有所帮助。

答案 1 :(得分:0)

请尝试这个(我已经测试过代码);如果有效,请将第二个“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;
    }
}

谢谢!

答案 2 :(得分:0)

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

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

将输入" 40 Quarters"给你40个ncoins和#34; Quarters"在coinName中。

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