public class StringTest
{
public static void main(String[] args)
{
  
  String str="TOM:89|JERRY:90|TONY:88";
  String str1[]=str.split("\\|");
 

    System.out.println(str1[0]);
    System.out.println(str1[1]);
    System.out.println(str1[2]);
    System.out.println(str1.length);
  
  for(int x=0;x<str.length();x++)
  {
     // System.out.println(str.length());
   String str2[]=str1[x].split(":");
   System.out.println(str2[0]+"-->"+str2[1]);
  }
}
}运行结果显示:TOM:89
            JERRY:90
            TONY:88
但是为什么显示str1.length为3???System.out.println(str1[0]);而这里输出是TOM:89,这与str1.length为3之间好像有点什么关系,但又说不清楚,??
String str1[]=str.split("\\|");分割结果存储在数据中,到底在数组中是怎么存储的???

解决方案 »

  1.   

    public class StringTest
    {
        public static void main(String[] args)
        {
                  
          String str="TOM:89|JERRY:90|TONY:88";
          String str1[]=str.split("\\|"); split("|");按|分隔数组,然后每一个对象分别存储到str1数组中
    格式如下:
    str1[0]="Tom:89"
    str1[1]="JERRY:90"
    str1[2]="TONY:88"
         
        
            System.out.println(str1[0]); 
            System.out.println(str1[1]);
            System.out.println(str1[2]);
            System.out.println(str1.length);  
    //所以这上面打印出来的就是上面数组对应的      
          for(int x=0;x<str.length();x++)        //这里输出数组分开的大小
          {
             // System.out.println(str.length());  应该是3
              String str2[]=str1[x].split(":");    然后再将数组中的每一个对象再次分隔
              System.out.println(str2[0]+"-->"+str2[1]); //就分别打印出分数,和人名,原理如上
          }
        }
    }
      

  2.   

    System.out.println(str1.length); 
    那么为什么这里输出的是3????
      

  3.   

    我理解错了,我以为是分成三段后,每段的存储数据的字符长度,不知道原来这里的length是指分段的数目,谢谢,明白了!
    以前对问题容易浅尝辄止,改了这个毛病后,对问题的思考就多了!!
    有些问题要是好好想想的话,还真能挖掘出来不少东西呢!!!
      

  4.   

     for(int x=0;x<str.length();x++)
    为什么是这个,难道不是 for(int x=0;x<str1.length;x++) 吗?
      

  5.   

    str1.length
    这个是你分割以后得到的数组的元素个数啊,有什么问题???
      

  6.   

    给的程序有点小错误,修改后如下所示:package net.csdn.blog.johnston;public class StringTest
    {
        public static void main(String[] args)
        {
                  
          String str="TOM:89|JERRY:90|TONY:88";
          String str1[]=str.split("\\|");
         
        
            System.out.println(str1[0]);
            System.out.println(str1[1]);
            System.out.println(str1[2]);
            System.out.println(str1.length);
          //原程序的 for(int x=0;x<str.length();x++)是错误的,str.length()大小是23      for(int x=0;x<str1.length;x++)
          {
              System.out.println(str.length());
              String str2[]=str1[x].split(":");
              System.out.println(str2[0]+"-->"+str2[1]);
          }
        }
    }