buffer[]里的内容是  1984-05-19-我的生日#1984-04-19-老婆的生日#1984-04-19-妈妈的生日#1984-                    56-87-爸爸的生日#$
$ 为结束符我输入 1984 04 19 
通过 jTextField_year、 jTextField_morth 、jTextField_date 来输入变量
输出的结果是: 1984-04-19-老婆的生日#1984-04-19-妈妈的生
               1984-04-19-妈妈的生日#1984-56-87-爸爸的生日#$
我理想中的结果是:1984-04-19-老婆的生日
                  1984-04-19-妈妈的生日 String select(char[] buffer){
      int length = buffer.length;//数组的长度
      int c = 0 ;//temp 的下标
      int hui = 3;//去年月日用刀的限定变量
      int g = 0;//变量R[]的下标
      String[] R =new String[3];//存查出来的年月日
      String zong = "";//总的输出
      char[] temp = new char[4];
      int L=0;//定点
      
      for( int i = 0 ; i < length  ; i++ )
      {
          if(buffer[i]=='$')return zong;
          if( hui != 0 )
          {
              if( buffer[i] != '-' )
              {
                  temp[c] = buffer[i];
                  c++;
              }
              else
              {
                  R[g] = new String(temp,0,c);
                  g++;
                  hui--;
                  c = 0;
              }
          }
          else
          {
              hui = 3;
              g = 0 ;
              while(buffer[i] !='#') {i++;H++;}
              String dd =jTextField_year.getText();
              String bb =jTextField_morth.getText();
              String rr =jTextField_date.getText();             if(dd.equals(R[0])&&bb.equals(R[1])&&rr.equals(R[2]))
             {                  String feng1 = new String(buffer,L,i);                  zong = zong+feng1+'\n';
                  L=i+1;
             }//end if             else
             {    L=i+1;
                  while(buffer[i] !='#') i++;
                  continue;
             }
          }//end else
      }//end for
        return "ssss";        //  return zong;    }//end select}

解决方案 »

  1.   

    哎,char[] 转换为String,然后分割字符串,或者用String.split、或者StringTokenizer,比你这么一个一个处理清晰多了。
      

  2.   

    刚看到,呵呵!!马上看看
    请java哥多帮助
      

  3.   

    String select(char[] buffer,String y,String m,String d){
            String strtemp = new String(buffer);
            String strinput = y+"-"+m+"-"+d;
            String stroutput = "";
            StringTokenizer st = new StringTokenizer(strtemp,"#");
            while(st.hasMoreTokens()){
                String str = st.nextToken();
                if(str.startsWith(strinput)){
                    stroutput +=str;
                    stroutput +="\n";
                }
            }
            
            
            
            return stroutput;
        }
      

  4.   

    佩服啊!!!!!!
    java哥
    哈哈
    我的QQ337531448
    有空加我