问答题 【说明】清点盒子。本程序当用户输入一个整数值时,一切正常;当输入其他数值时,程序就出错。现在已做了改进,请填空。 import java. text. NumberFormat; Public class InventoryLoop { public static void main(String args[]) { String numBoxesIn; Int numBoxes; Double boxPrice=3.25; Boolean gotGoodInput=false; NumberFormat currency=NumberFormat.{{U}} (1) {{/U}}; do { System.out. print(“How many boxes do we have?”); numBoxesIn=DummiesIO.{{U}} (2) {{/U}}; try { numBoxes=Integer.parseInt({{U}} (3) {{/U}}); system. out. print("The value is"); system.out. println(currency, format (numBoxes*boxPrice)); gotGoodInput=true; catch({{U}} (4) {{/U}}) { System.out.println(); System.out. println(That's not a number."); } }while({{U}} (5) {{/U}});//输入不正确时 System. out.println("That's that."); } }
【正确答案】
【答案解析】[解析] (1)getCurrencyInstance()或getCurrencyInstance(currentLocale) 货币currency对象指向格式化数据NumberFormat类的货币数字格式getCurrencyInstance()。 (2)getString() 读入货币数字的字符串到NumBoxesIn中。 (3)numBoxesIn 分析字符串NumBoxesIn的合法性,并转换成整数。 (4)NegativeNumberException e 捕捉数据格式错误的信息NegativeNumberException e。 (5)!gotGoodInput 输入不正确时,继续循环输入。