Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误java.lang.ArrayIndexOutOfBoundsException:_Java_Android - Fatal编程技术网

错误java.lang.ArrayIndexOutOfBoundsException:

错误java.lang.ArrayIndexOutOfBoundsException:,java,android,Java,Android,我将字符串值传递给此方法。但我收到数组索引绑定异常。请帮助我 public void separateCards(String cards) { cardNames+=cards+"-"; String[] parts = cardNames.split("-"); String part1 = parts[0]; // 004 String part2 = parts[1]; // 034556 Toast.makeText(getActivity(),

我将字符串值传递给此方法。但我收到数组索引绑定异常。请帮助我

public void separateCards(String cards)
{
    cardNames+=cards+"-";
    String[] parts = cardNames.split("-");
    String part1 = parts[0]; // 004
    String part2 = parts[1]; // 034556
    Toast.makeText(getActivity(), part1,Toast.LENGTH_SHORT).show();
}
}
我的日志

  03-28 11:27:41.213: E/AndroidRuntime(22392): FATAL EXCEPTION: main
    03-28 11:27:41.213: E/AndroidRuntime(22392): java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
    03-28 11:27:41.213: E/AndroidRuntime(22392):    at com.compareCr.ListvCompare.separateCards(ListvCompare.java:760)
    03-28 11:27:41.213: E/AndroidRuntime(22392):    at com.compareCr.ListvCompare$2$1.onClick(ListvCompare.java:627)
    03-28 11:27:41.213: E/AndroidRuntime(22392):    at android.view.View.performClick(View.java:4261)
    03-28 11:27:41.213: E/AndroidRuntime(22392):    at android.view.View$PerformClick.run(View.java:17356)
    03-28 11:27:41.213: E/AndroidRuntime(22392):    at android.os.Handler.handleCallback(Handler.java:615)
    03-28 11:27:41.213: E/AndroidRuntime(22392):    at android.os.Handler.dispatchMessage(Handler.java:92)
在字符串的末尾追加
“-”
,因此拆分时,只能得到一个值

因此,这个
字符串part2=parts[1]将数组索引抛出绑定异常

you need to put "-" in between string.
在字符串的末尾追加
“-”
,因此拆分时,只能得到一个值

因此,这个
字符串part2=parts[1]将数组索引抛出绑定异常

you need to put "-" in between string.

您将
-
添加到错误的位置。给您的值为(我假设
cardNames
的初始值为
004

你应该做:

cardNames += "-" +cards;
这将给你:

"004-34556"
但是,严肃地说,将
字符串
拆分
以相同的方式再次组合的目的是什么

如果你这样做不是很容易吗

String part1 = cardNames; 
String part2 = cards;

注意:您应该始终检查要访问的
索引
元素必须小于
部分。长度

您将
-
添加到错误的位置。给您的值为(我假设
cardNames
的初始值为
004

你应该做:

cardNames += "-" +cards;
这将给你:

"004-34556"
但是,严肃地说,将
字符串
拆分
以相同的方式再次组合的目的是什么

如果你这样做不是很容易吗

String part1 = cardNames; 
String part2 = cards;

注意:您应该始终检查要访问的
索引
元素必须小于
部分。长度

我认为您的卡名值中只有一个“-”,这就是您出错的原因

所以最好使用For循环从数组中获取所有数据

    String[] parts = cardNames.split("-");
    for (int i = 0; i < parts.length; i++) {
        String partsData = parts[i]; 
    }
String[]parts=cardNames.split(“-”);
对于(int i=0;i
更新:

cardNames=cardNames+"-"+cards;

String parts1;
String parts2;
String[] parts = cardNames.split("-");
for (int i = 0; i < parts.length; i++) {
    if(i==0)
        parts1= parts[i];
    else if(i==1)
        parts2= parts[i];
}
cardNames=cardNames+“-”+卡片;
弦部分1;
弦部分2;
String[]parts=cardNames.split(“”);
对于(int i=0;i
我认为您的卡名中只有一个“-”值,这就是您出错的原因

所以最好使用For循环从数组中获取所有数据

    String[] parts = cardNames.split("-");
    for (int i = 0; i < parts.length; i++) {
        String partsData = parts[i]; 
    }
String[]parts=cardNames.split(“-”);
对于(int i=0;i
更新:

cardNames=cardNames+"-"+cards;

String parts1;
String parts2;
String[] parts = cardNames.split("-");
for (int i = 0; i < parts.length; i++) {
    if(i==0)
        parts1= parts[i];
    else if(i==1)
        parts2= parts[i];
}
cardNames=cardNames+“-”+卡片;
弦部分1;
弦部分2;
String[]parts=cardNames.split(“”);
对于(int i=0;i
当不带“-”的内容传入方法时, 像“福” 它变成了“福——” 当你调用“foo-”时 它返回[“foo”] 因此,如果您尝试访问索引1,它就超出了范围。

当没有“-”的内容传入您的方法时, 像“福” 它变成了“福——” 当你调用“foo-”时 它返回[“foo”] 因此,如果你试图访问索引1,它是越界的。

你打印过“卡片”吗

我认为名片是“某物-”; 然后部分={'something'}

因此,第[1]部分超出索引范围

你打印过“卡片”吗

我认为名片是“某物-”; 然后部分={'something'}


因此,第[1]部分超出索引范围

您试图拆分的
字符串是什么?
cardNames=004
cards=034556
?@Apoorv它的cardName就像GoldeCard platinumcard一样使用以下命令:
cardNames+=“-”+cards。如果你明白了,我会补充一个答案。不清楚你的字符串包含什么。你试图拆分的
字符串是什么
-
cardNames=004
cards=034556
?@Apoorv它的cardName就像GoldeCard platinumcard一样使用这个:
cardNames+=“-”+卡。如果您理解,我将添加一个答案。不清楚您的字符串包含什么内容来解释这是如何发生的?是否解释这是如何发生的?我允许您使用我的注释中的代码:
cardNames+=“-”+cards:-)谢谢,但我不想在这里加上。因为我猜这个问题男人已经明白了问题的症结所在……:我同意你使用我评论中的代码:
cardNames+=“-”+cards:-)谢谢,但我不想在这里加上。因为我想这个问题男人已经明白了问题的症结所在:…我想除法,因为我想保存在两个字符串中。我怎么做请帮助我先合并两个字符串,然后再除法,为什么会这样?我想分割,因为我想保存在两个字符串中。我怎么做请帮助我先合并两个字符串,然后再分割,为什么会这样??