比如说,
String line = <a id="nu-f-106" class="user" href="/danger_dave;_ylt=A0wNB9TGuAVMrKAAwRjkRh54;_ylv=3">;我想得到这个子串/danger_dave,而这个子串是变化的,我要得到所有的这些字串,怎么实现,请教各位高手。

解决方案 »

  1.   

    用正则,
    或者用字符串匹配吧。
    String str = line.substring(line.indexof("href=") + 1, indexof(";"));
      

  2.   


            String line = "<a id=\"nu-f-106\" class=\"user\" href=\"/danger_dave;_ylt=A0wNB9TGuAVMrKAAwRjkRh54;_ylv=3\">";
            String regex = "href=\"([^\";]*);";
            Pattern p = Pattern.compile(regex);
            Matcher m = p.matcher(line);
            while(m.find()) {
             System.out.println(m.group(1));
            }
      

  3.   


            String line = "<a id=\"nu-f-106\" class=\"user\" href=\"/danger_dave;_ylt=A0wNB9TGuAVMrKAAwRjkRh54;_ylv=3\">";        String value = null;        java.util.regex.Matcher m = java.util.regex.Pattern.compile("[^\";]*;").matcher(line);        if (m.find()) {            value = m.group(0);        }        System.out.println(value);
      

  4.   

    给一个不用正则 却非常好用的办法public static String getString(){
    String line = "<a id='nu-f-106' class='user' href='/danger_dave;_ylt=A0wNB9TGuAVMrKAAwRjkRh54;_ylv=3'>";
    String result = line.substring(line.indexOf("href='")+6,line.indexOf("'>"));
    return result;
    }
      

  5.   

    修正5楼的错误 String 不能“”里面有“”,“”里面用‘’
      

  6.   


    /**
    比如说,
    String line = <a id="nu-f-106" class="user" href="/danger_dave;_ylt=A0wNB9TGuAVMrKAAwRjkRh54;_ylv=3">;我想得到这个子串/danger_dave,而这个子串是变化的,我要得到所有的这些字串,怎么实现,请教各位高手。
    */import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Test{
    public static void main(String[] args){
    String line = "<a id=\"nu-f-106\" class=\"user\" href=\"/danger_dave;_ylt=A0wNB9TGuAVMrKAAwRjkRh54;_ylv=3\">";
    String key = "href";
    String value = getValue(line,key);
    System.out.println(value);
    } public static String getValue(String line,String key){
    String result = null;
    String regex = key + "=\"([^;\"]*)";
    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher(line);
    if(matcher.find()){
    result = matcher.group(1);
    } return result;
    }
    }