举了例子吧,有这样几个字符串:
String str1 = "dsaf3d&channelid=34567&dsfghh3";
String str2 = "channelid=87654&sdf452";
String str3 = "channelid=76543&channelid=76543";
channelid=的数字都是五位.
现在我想有这样一种方法,可以取得channelid=后面的那五位数字.
还望大家指教

解决方案 »

  1.   

    public class Demo1{ public static void main(String args[]){
    String str3 = "channelid=76543&channelid=76543";
    String s[] = str3.split("&");
    String s2 = "";
    for(String k:s){
    if(k.indexOf("channelid")!= -1){
    s2 = k;
    break;
    }
    }
    s = s2.split("=");
    System.out.println(s[1]);
    }

    }
      

  2.   

    一定是五位?String str2 = "channelid=87654&sdf452";
    String  strFFF =str2.subString(str2.indexOf("channelid")+"channelid".length()+1,5);
      

  3.   

    String str1 = "dsaf3d&channelid=34567&dsfghh3";        String p="channelid=\\d{5}";
            Pattern pp=Pattern.compile(p);
            Matcher m=pp.matcher(str1);
            while(m.find()){
             System.out.println(m.group());
            }
      

  4.   

    package test1;import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Test14 { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO 自动生成方法存根

    String st = "dsaf3d&channelid=34567&dsfghh3";
    Pattern p=Pattern.compile("channelid=(\\d{5})");
    Matcher m=p.matcher(st);
    StringBuffer sb=new StringBuffer();
    while(m.find()){
     sb=sb.append(m.group(1));
     
    }
    System.out.println(sb);


    }}
      

  5.   

    import java.util.ArrayList;
    import java.util.List;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class T1 {  public static void main(String[] args) {    List<String> strList = new ArrayList<String>();
        
        strList.add("dsaf3d&channelid=34567&dsfghh3");
        strList.add("channelid=87654&sdf452");
        strList.add("channelid=76543&channelid=76543");    Pattern pattern = Pattern.compile("(=)(\\d{5})");
        List<String> numList = new ArrayList<String>();
        for (String str : strList) {
          findPattern(str, pattern, 2, numList);
        }    // 输出结果
        for (String num : numList) {
          System.out.println(num);
        }
      }  /**
       * 从字符串中匹配指定的模式
       * @param str 需要被查找的字符串
       * @param pattern 匹配的模式 
       * @param index 需要匹配的结果在模式中的组位置
       * @param list 保存匹配到的结果
       */
      private static void findPattern(String str, Pattern pattern, int index,
          List<String> list) {
        Matcher matcher = pattern.matcher(str);
        while (matcher.find()) {
          list.add(matcher.group(index));
        }
      }
    }
      

  6.   

    package jsp;import java.util.regex.*;
    public class test {
        public static void main(String[] args) {
            String str1 = "dsaf3d&channelid=34567&dsfghh3";
            String str2 = "channelid=87654&sdf452";
            String str3 = "channelid=76543&channelid=76543";        String[] strarr=new String[3];
            strarr[0]=str1;
            strarr[1]=str2;
            strarr[2]=str3;
            
            Pattern pattern=Pattern.compile("=(\\d+)");
            for (int i=0;i<3;i++)
            {
                Matcher matcher=pattern.matcher(strarr[i]);
                while(matcher.find())
                {
                    System.out.println(matcher.group(1));
                }
            }
        }
    }
      

  7.   

    错了耶,应该是这样的
    String str2 = "channelid=87654&sdf452";
    int index = str2.indexOf("channelid")+"channelid".length()+1;
    String  strFFF =str2.substring(index,index+5);
      

  8.   

    String.substring(index,index+5);--(开始下标,结束下标)
    一直想着(开始下标,截取长度);
      

  9.   

    AWUSOFT的方法最简单实用,我发分发给他.