我写了个取子串的方法,源字串是在IE中调用一个servlet的参数,在IE地址中输入下边地址运行servlet,如下:
http://192.168.1.111/servlet/douser?userid=admin&userip=192.168.1.100 
然后我的servlet程序如下:
public void service(HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException
{
ServletOutputStream out = res.getOutputStream();
javax.servlet.ServletInputStream in = req.getInputStream();
String queryString = req.getQueryString();     开始取子串(参数为:源始串,起始字符串,到某个串结束)     String userid = getSubString(queryString,"userid=", "&userip").toLowerCase();     .....其它代码略
 
//获取给定字符串中指定的起始结束字符间的子串的方法如下
  public String getSubString(String SourceStr,String start,String end) {
 String getstr="";
   try
   {
getstr = SourceStr.substring(SourceStr.indexOf(start)+start.length(),SourceStr.indexOf(end));
   }
   catch (Exception e)
   {
e.printStackTrace();
   }
   return getstr ;
  }我的问题:我在windows 2000 的机器 及 IE6 上输入上边的http://地址,结果运行正确,取得了我想
要的字符串admin
    但是 在Windows XP 及IE6 上输入上边的http://地址,结果不正确,得到的字符串是dmin,少了前边的a ,请问这是为什么?????

解决方案 »

  1.   

    substring 方法将返回一个包含从 start 到最后(不包含 end )的子字符串的字符串。
      

  2.   

    关键是我在winddow 2000的机器上运行时,又取对了的,所以不明白怎么回事了。
    "1234567".substring(1,4)应该得到123啊。
      

  3.   

    这样取不好吧。可以request.getParameter("userid")的。
      

  4.   

    "1234567".substring(1,4)应该得到123啊。
    应该得到234