String line1 = "1375959980100015642   56     张鼎新       117.00";
String line2 = "1375959980100015689|57|孙宏杰|187.00|";
怎样分解者两个字符串呢?line1是以多个或者一个”空格“分隔的,line2是以”|“我想去掉得到具体的数值如:number=1375959980100015642   
age=56
name=张鼎新
money=117.00
number=1375959980100015689
age=57
name=孙宏杰
money=187.00磨蹭了一个一下午抗不住了,请哪位指教一下,谢谢。

解决方案 »

  1.   

    String str[] = line2.split("|");
    String str1 = "number="+str[0]+"\nage="+str[1]+........;
      

  2.   

    String str[] = line2.split("|"); 
    String str1 = "number="+str[0]+"\nage="+str[1]+........;
    楼上正解
      

  3.   

    String str[] = line2.split("\\|"); 
    String str1 = "number="+str[0]+"\nage="+str[1]+........;应该是这样
      

  4.   

    先用正则将一个或多个空格变成一个空格,再split(" ");就好了
      

  5.   


    public class SplitTest {    public static String[] getStringArraysInfo(String tag, String str) {        String[] arrays = str.split(tag);        arrays[0] = "number:" + arrays[0];
            arrays[1] = "age:" + arrays[1];
            arrays[2] = "name:" + arrays[2];
            arrays[3] = "money:" + arrays[3];        return arrays;
        }    public static void main(String[] args) {        String line1 = "1375959980100015642 56 张鼎新 117.00";
            String line2 = "1375959980100015689|57|孙宏杰|187.00";        String[] arraysInfo1 = getStringArraysInfo(" ", line1);
            System.out.println(arraysInfo1[0] + '\n' + arraysInfo1[1] + '\n' + arraysInfo1[2] + '\n' + arraysInfo1[3]);        System.out.println();        String[] arraysInfo2 = getStringArraysInfo("\\|", line2);
            System.out.println(arraysInfo2[0] + '\n' + arraysInfo2[1] + '\n' + arraysInfo2[2] + '\n' + arraysInfo2[3]);
        }
    }
      

  6.   

    既然用正则表达式,为什么要先替换再split?你这是糟蹋正则表达式
    str2.split("\\s+");
      

  7.   

    如果不懂,可以把代码运行一下,如果懂,想好了再发言.
    split本身就是正则匹配,为什么要先转换再分隔?我接收一个字符串难道要先写到文件中再读回头?
      

  8.   

    各位是否测试过,split是多个空格的话就得不到想要的结果!!
      

  9.   


    public static void main(String[] args) {
    String line1 = "1375959980100015642  56    张鼎新      117.00"; 
    String line2 = "1375959980100015689|57|孙宏杰|187.00|"; 
    for(String str : line1.split("\\s+")) {
    System.out.println(str);
    }
    for(String str : line2.split("\\|")) {
    System.out.println(str);
    }
    }
      

  10.   

    一楼的String str[] = line2.split("|"); 这样分隔没用的
    七楼的line2.split("\\|"); 正解!
      

  11.   

    代码:
    import java.util.Arrays;public class SplitString { public static void main(String[] args) {
    String line1 = "1375959980100015642  56    张鼎新      117.00  ";
    String line2 = "1375959980100015689|57|孙宏杰|187.00|";
    String[] rs1 = line1.split("\\s+");
    String[] rs2 = line2.split("\\|");
    System.out.println(Arrays.toString(rs1));
    System.out.println(Arrays.toString(rs2));
    }}输出:
    [1375959980100015642, 56, 张鼎新, 117.00]
    [1375959980100015689, 57, 孙宏杰, 187.00]
      

  12.   

    分隔用正则就好了,强烈建议楼主看一下正则,太好用了……
    和楼上差不多的代码,只不过把分隔的正则合成一个了
    String line1 = "1375959980100015642  56    张鼎新      117.00"; 
    String line2 = "1375959980100015689|57|孙宏杰|187.00|"; 
    String reg = "\\s+|\\|";
    String[] str = line1.split(reg);
    for(String s:str)
    System.out.println(s);str = line2.split(reg);
    for(String s:str)
    System.out.println(s);
      

  13.   

    有人可能用的是火星版的JDK,所以\\s+分隔没有用,也怪我,没有说明那个正则表达式只对SUN规范的JDK有用.