字符串类型为http://www.richsoft.com.cn:8080/asws/dfdsf?str=<用户名>s1</用户名><口令>s2</口令><权限>s3</权限>,
如何用java写个函数把s1,s2,s3的值取出来?
就是string=http://www.richsoft.com.cn:8080/asws/dfdsf?str=<用户名>s1</用户名><口令>s2</口令><权限>s3</权限>;
然后如何让string aa=s1..........

解决方案 »

  1.   

    这个并不是什么大问题吧?
    你找到“>”后,然后用StringBuffer append() 直到“<”最后toString()
    不就行了吗?
      

  2.   

    真实的URL肯定不是你这样的,需要用Decoder类去decode一次再进行字符串截取
      

  3.   

    总之就是如何将url中的<用户名>s1</用户名><口令>s2</口令><权限>s3</权限>中的s1,s2,s3取出.
      

  4.   

    dlxu(Coding超过了15W行)
    说的有道理,我目前还没有学网站上面的。
    可能问题并不是这样的。
    如果你一定要问:
    就是string=http://www.richsoft.com.cn:8080/asws/dfdsf?str=<用户名>s1</用户名><口令>s2</口令><权限>s3</权限>;
    然后如何让string aa=s1..........答案是:
    String str = "http://www.richsoft.com.cn:8080/asws/dfdsf?str=<用户名>s1</用户名><口令>s2</口令><权限>s3</权限>";

    int ia = str.indexOf('>');
    ++ia;
    StringBuffer sb = new StringBuffer();
    char ch;
    while ((ch=str.charAt(ia++)) != '<')
        sb.append(ch);
    最后就在sb里面了啊!
      

  5.   

    to panqunjun() :我按照你的方法只取到s1的值呀.
      

  6.   

    我给你个方法:你试试
    String str = "http://www.richsoft.com.cn:8080/asws/fid?str=<用户名>name</用户名><口令>password</口令><权限>permiy</权限><king>我的名字</king>";
    调用我的方法substring(str);//下面是我写的取值方法.只要是在"<>"两个定界符之间的都能取得,就像你说的.<king>我爱你</king>之间的,"我爱你"就能取出;
    public static void substring(String str){
    char a = '<';
    char b = '>';
    int count1 = 0;
    int index=0;
    int lastindex=0;
    String ch="";
    while(true){
     index = str.indexOf(b,count1);
     lastindex = str.indexOf(a,index);
     if(lastindex < 0) break;
     String s= str.substring(index+1,lastindex);
     if(s.equals("")){
      ch += ",";
     }else{
      ch += s;
     }
     count1 = lastindex;
     s = "";
    }
    System.out.print(ch);
    }
    输出结果:name,password,permiy,我的名字;
      

  7.   

    不考虑url编码问题时,直接用正则表达式就可以搞定
    pattern like this
    <用户名>(.*?)</用户名><口令>(.*?)</口令><权限>(.*?)</权限>然后三个group分别对应s1,s2,s3