因为如果不这样,还没等for循环完毕,程序在碰到不符合if条件的时候就结束啦。
正确代码:着重看返回值位置
public class Test94 {
public static void main(String[] args) {
String student= new String("姓名|英文名称|年龄|性别\n张三|Zhang San|20|男\n李四|Li Si|18|男\n小花|xiaohua|18|女\n");
String[] student1 = eachStudent(student);
System.out.println("名称:" + student1[0] + " 英文名称:" + student1[1].toUpperCase() + " 年龄:" + student1[2] + " 性别:" + student1[3]);
}
public static String[] eachStudent(String name) {
String[] split = name.split("\n"); //这里是将一个字符串的内容分割为一个个学生的信息存储到split数组中
for (String s : split) {
String[] student = s.split("\\|"); //再将每一个学生的信息按| 分成不同类型存储到 student数组中
if(student[3].equals("女")){
return student;
}
}
return null;
}
}
错误代码
public static String[] eachStudent(String name) {
String[] split = name.split("\n"); //这里是将一个字符串的内容分割为一个个学生的信息存储到split数组中
for (String s : split) {
String[] student = s.split("\\|"); //再将每一个学生的信息按| 分成不同类型存储到 student数组中
if(student[3].equals("女")){
return student;
}
else
return null; //这里是错误的
}
return null;
}
空指针异常
再尝试在else语句那里输出语句
印证了想法