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