我正在完成作业,我不允许使用扫描仪。相反,我们必须使用int money = Integer.parseInt(args[0])
。我尝试编写代码并进行编译,但是出现了运行时错误,我想知道是否有人可以告诉我我做错了什么让我走上正轨!
这是我的代码:
class MakingChange {
public static void main(String[] args) {
int money = Integer.parseInt(args[0]);
int toonies = (money / 200);
System.out.println(toonies);
}
}
错误是
java.lang.ArrayIndexOutOfBoundsException: 0
at Money.main(Money.java:16)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)
我不知道该怎么做这个错误!任何帮助将不胜感激
答案 0 :(得分:3)
你应该编写防御性代码,试试这个:
<script type="text/javascript">
$(document).ready(function (e) {
$('.search-panel .dropdown-menu').find('a').click(function (e) {
e.preventDefault();
var param = $(this).attr("href").replace("#", "");
var concept = $(this).text();
$('.search-panel span#search_concept').text(concept);
$('[id$=hdnSearchParam]').val(param);
if (param == "date") {
$(function daterange () {
$("#<%= txtsearch.ClientID %>").daterangepicker({
locale: {
format: 'DD/MMM/YYYY'
}
});
});
}
else { //terminate the function }
});
});
//Re-Create for on page postbacks
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function daterange() {
$('.search-panel .dropdown-menu').find('a').click(function (e) {
e.preventDefault();
var param = $(this).attr("href").replace("#", "");
var concept = $(this).text();
$('.search-panel span#search_concept').text(concept);
$('[id$=hdnSearchParam]').val(param);
if (param == "date") {
$(function () {
$("#<%= txtsearch.ClientID %>").daterangepicker({
locale: {
format: 'DD/MMM/YYYY'
}
});
});
}
else { //terminate the function }
});
});
</script>
答案 1 :(得分:2)
问题在于:
int()
您可能正在尝试访问args数组的第一个元素, 但是使用的数组是空的(零项)。
您确定要将任何参数正确传递给您的应用程序吗? 它们应该与程序空间分隔,同时执行编译的程序(这是一个使用jar文件的例子):
int money = Integer.parseInt(args[0]);
您可以添加一些错误处理代码以防止这种情况,例如检查args数组大小的if语句:
java -jar MyProgram.jar 1234
甚至使用try-catch块:
int money = 0;
if(array.size() != 0) {
money = Integer.parseInt(args[0]);
}
答案 2 :(得分:2)
您没有将任何参数传递给您的程序。
在方法开头添加:
<nav>
<a href="#"><span>Site title</span></a>
<a class="news" href="#"><span>Category</span></a>
<a class="comm" href="#"><span>Category</span></a>
<a class="variety" href="#"><span>Category</span></a>
<form class="search">
<label>
<input type="text" size="15" placeholder="Search..." />
</label>
</form>
</nav>
要传递参数,请执行以下操作:
if (args.length == 0)
throw new IllegalArgumentException("No arguments found");
答案 3 :(得分:1)
嗯,ArrayIndexOutOfBoundsException
表示您正在尝试访问未使用或初始化的内存中的索引。
看起来您正在通过命令行运行程序;您需要将参数传递给已编译的.class
文件才能使其运行。