java.lang.ArrayIndexOutOfBoundsException


public class test05 {
	public static void main(String[] args) {
		String str ="张三:20|李四:21|王五:22";
		String result[]=str.split("\\|");      
		for(int x=0;x<result.length;x++) {
			String temp[]=result[x].split(":");
			System.out.println("姓名:"+temp[0]+",年龄:"+temp[1]);
		}
	}
}


我想请教一下各位大佬,为什么这段代码在运行不了啊?要怎么修改才能顺利运行啊?求求了,救救孩子吧。。。

符号不对,因为张三:20|李四:21|王五:22  里面用的是中文的冒号,你分割用的是英文冒号,所以,分割的数组里为null,你通过下标找数据,肯定报错。

String temp[]=result[x].split(":");  这个里面的你是以英文分号":"进行分割的,而你的str中是以中文“:”分割的,所以temp[1]就会数组越界

看你输出的代码   temp[0]后面的   " + "  号要放在双引号外面 

看你输出的代码   temp[0]后面的   " + "  号要放在双引号外面 

等下  看错了

 

你发出来的代码没有问题.

 

如果这个只单跑这一个main方法报数组下标越界的话  .只有一种可能   你在什么数组str 中用的 "   :     "号和  split分割时用的 "   :  "一个是中文的  一个是英文的  .你可以改改试试..