JAVA大神帮帮忙 我忙了好久就是解不了

如下字符串,01#张三#20*02#李四#30*03#王五#40。。。。。。,解析每个人分数多少。样式如下:
01 张三 20
02 李四 30
03 王五 40。并且计算总分。

 String[] lines = 字符串.split("*");
for (String s : lines)
{
String[] cols =s.split("#");
//cols[0]就是学号,1就是名字,2就是成绩,Integer.parseInt可以转换为数字
}

public static void main(String[] args) {
// TODO Auto-generated method stub
int sum = 0;
String s = "01#张三#20*02#李四#30*03#王五#40";
String [] sp = s.split("\*");//字符串被分割成'01#张三#20'、'02#李四#30'和'03#王五#40'
for(String get:sp)
{
String []eve = get.split("#");
for(int i = 0;i<3;i++)
{
System.out.print(eve[i]+" ");
if(i==2)
{
sum += Integer.parseInt(eve[i]);
}
}
System.out.println("\n");
}
System.out.println("总分为:"+sum);
}

拿去不谢,楼上的有转义字符问题

先按星号分割获取所有的人员,再通过井号分割获取每个人的属性,并获取每个人的最后一个属性,求和就是总成绩。

public class Test {

public static void main(String[] args) {
    String s = "01#张三#20*02#李四#30*03#王五#40";
    String[] s1 = s.split("\\*");
    int sum = 0;
    for (int i = 0; i <= s1.length - 1; i++) {
        String[] s3 = s1[i].split("#");
        for (int j = 0; j <= s3.length - 1; j++) {
            if(j==2){
                sum+=Integer.parseInt(s3[2]);
            }
        }
        System.out.println(s3[0] + " " + s3[1] + " " + s3[2]);
    }
    System.out.println("sum=" + sum);
}

}