我无法显示摘要。我应该通过添加对象数组来修改以前的 Java 分配。在循环中,实例化每个单独的对象。确保用户不能继续添加超出数组大小的另一个外部转换。用户从菜单中选择退出后,提示用户是否要显示摘要报告。如果他们选择“Y”,则使用您的对象数组,显示以下报告:
Item Conversion Dollars Amount
1 Japanese Yen 100.00 32,000.00
2 Mexican Peso 400.00 56,000.00
3 Canadian Dollar 100.00 156.00
等等
转化次数 = 3
编译时没有错误..但是当我运行程序时它很好,直到我点击 0 结束转换并让它询问我是否想查看摘要。此错误显示:
线程“主”java.lang.StringIndexOutOfBoundsException 中的异常:字符串索引超出范围:Lab8.main(Lab8.java:43) 的 java.lang.String.charAt(String.java:658) 的 0
我的代码:
import java.util.Scanner; import java.text.DecimalFormat; public class Lab8 { public static void main(String[] args) { final int Max = 10; String a; char summary; int c = 0; Foreign[] Exchange = new Foreign[Max]; Scanner Keyboard = new Scanner(System.in); Foreign.opening(); do { Exchange[c] = new Foreign(); Exchange[c].getchoice(); Exchange[c].dollars(); Exchange[c].amount(); Exchange[c].vertical(); System.out.println("\n" + Exchange[c]); c++; System.out.println("\n" + "Please select 1 through 4, or 0 to quit" + >"\n"); c= Keyboard.nextInt(); } while (c != 0); System.out.print("\nWould you like a summary of your conversions? (Y/N): "); a = Keyboard.nextLine(); summary = a.charAt(0); summary = Character.toUpperCase(summary); if (summary == 'Y') { System.out.println("\nCountry\t\tRate\t\tDollars\t\tAmount"); System.out.println("========\t\t=======\t\t=======\t\t========="); for (int i=0; i < Exchange.length; i++) System.out.println(Exchange[i]); Foreign.counter(); } } }
我查看了第 43 行及其这一行: summary = a.charAt(0);
但是我不确定它有什么问题,有人可以指出吗?谢谢你。