java中的字符串转换抛出数组索引超出范围异常
我编写了以下代码,但它抛出数组索引超出范围异常
String options = "" + args[0];
if (options.toLowerCase().contains("failover"))
{
dataToPass[0]= "failover";
callScript("Clus1toNfastfastsamehost",dataToPass);
}
: 异常名称 = java.lang.ArrayIndexOutOfBoundsException exception_message = 数组索引超出范围:1
I have written following code but it is throwing array index out of range exception
String options = "" + args[0];
if (options.toLowerCase().contains("failover"))
{
dataToPass[0]= "failover";
callScript("Clus1toNfastfastsamehost",dataToPass);
}
Exceptions:
exception_name = java.lang.ArrayIndexOutOfBoundsException
exception_message = Array index out of range: 1
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
好吧,要么您没有为 dataToPass[] 分配足够的内存,要么您没有将参数传递给程序。如果没有传递任何参数,则 args 是一个零长度数组。调试对你来说是一个不错的选择。
Well, Either you are not allocated enough memory the dataToPass[] or you have not pass arguments to the program. If no arguments is passed then args, it's a zero length array. Debugging will be a good option for you mate.
您没有向您的程序传递参数。
You are not passing an argument to your program.
嗯,这是一个简单的例外。检查所有数组长度。 args 中有多少项?在数据传递中?考虑使用调试器。
Well, it's a straightforward exception. Check all your array lengths. How many items are in args? In dataToPass? Consider using a debugger.
使用代码修复进行更新
原始评论:
示例代码中有两个地方引用了数组。
args[0]
和dataToPass[0]
它必须是这两者之一。所以,a) 你没有向程序传递任何参数,并且 args[0] 没有定义——这对我来说似乎很奇怪,因为我认为 args[0] 是程序名称或 b) < code>dataToPass[0] 未分配 - dataToPass 是零长度数组而不是 1 长度数组吗?
UPDATE WITH CODE FIX
Original comments:
There are two places you reference an array in the example code.
args[0]
anddataToPass[0]
It must be one of those two. So, a) you are not passing any arguments to the programs and args[0] is not defined -- this seems strange to me because I thought
args[0]
was the program name or b)dataToPass[0]
was not allocated -- is dataToPass a zero length array and not a 1 length array?