在我的程序中,我正在尝试使用扫描仪扫描一个完整的整数文件。这是一个家庭作业,要求我写一个程序,用一定的硬币显示用预定金额组成的所有方法,测试者使用这样的文件。
// Coins available in the USA, given in cents. Change for $1.43?
1 5 10 25 50 100
143
我的输出需要有最后一行(代表总金额的行:143) 看起来像这样:
change: 143
1 x 100 plus 1 x 25 plus 1 x 10 plus 1 x 5 plus 3 x 1
1 x 100 plus 0 x 25 plus 4 x 10 plus 0 x 5 plus 3 x 1
1 x 100 plus 0 x 25 plus 3 x 10 plus 2 x 5 plus 3 x 1
1 x 100 plus 0 x 25 plus 2 x 10 plus 4 x 5 plus 3 x 1
1 x 100 plus 0 x 25 plus 1 x 10 plus 6 x 5 plus 3 x 1
1 x 100 plus 0 x 25 plus 0 x 10 plus 8 x 5 plus 3 x 1
2 x 50 plus 1 x 25 plus 1 x 10 plus 1 x 5 plus 3 x 1
2 x 50 plus 0 x 25 plus 4 x 10 plus 0 x 5 plus 3 x 1
...
我的斗争是我有一个初始化变量
Integer change;
我把它设置为
change = input.nextLine();
但是,我收到此错误消息,指出它是一个需要String的不兼容类型。如何将它扫描到可以扫描下一行并将其设置为整数的位置?感谢您的帮助!
答案 0 :(得分:1)
将字符串解析为Integer change = Integer.parseInt(input.nextLine());
答案 1 :(得分:0)
这是来自Java的扫描仪吗?如果是这样的话。 。
Scanner scantron = new Scanner( 'input file' );
// can be dynamically added to easier than normal arrays
ArrayList<Integer> coins = new ArrayList<Integer>();
int change;
// toggle flag for switching from coins to change
boolean flag = true;
while(scantron.hasNextLine())
{
// if this line has no numbers on it loop back to the start
if(!scantron.hasNextInt()) continue;
// getting the first line of numbers
while(flag && scantron.hasNextInt()) coins.add(scantron.nextInt());
// set the flag that the coins have been added
flag = false;
// if this is the first time the flag has been seen ignore this
// otherwise the next line should have the change
if(!flag) change = scantron.nextInt();
}