如何在Java中实现 像Delphi中的 Midstr 函数 和 pos 函数

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【Java_yR_26】截止到2008-06-26 14:42:03的历史汇总数据(不包括此帖):
    发帖数:2                  发帖分:70                 
    结贴数:2                  结贴分:70                 
    未结数:0                  未结分:0                  
    结贴率:100.00%            结分率:100.00%            
    敬礼!
      

  2.   

    能有详细实现吗,我自己也试着实现过pos没有问题,就是midstr
    public String myMidStr(String expr,int start,int end)
    {
      String str = "";
      str = expr.substring(m,m+n);
      return str;
    }
    使用的时候总是感觉有点问题
      

  3.   

    public String myMidStr(String expr,int start,int end) 

      String str = ""; 
      str = expr.substring(m,m+n); 
      return str; 
    } 呵呵你的代码 start end 都没有用到啊?按照你的意思估计应该替换了现在 m,n
      

  4.   


    public String myMidStr(String expr,int start,int end) 

      String str = ""; 
      str = expr.substring(start,start+end); 
      return str; 
    }
      

  5.   

    public static String subStrByFlag(String s,String sStart,String sEnd){
    return s.substring(s.indexOf(sStart)+sStart.length(),s.indexOf(sEnd));
    }这是我的字符串截取。   sStart,sEnd 可以是任意字符串。
    这个函数采集系统常用。你可以参考一下。
      

  6.   

    public static String midString(String expr, int start, int end) {
        if (expr == null) return "";
        if (expr.length() == 0) return expr;
        if (start < 0 || end < 0) return "";
        if (start == end) {
            if (start < expr.length()) return "" + expr.charAt(start);
            else return "";
        }
        if (start > end) {
            int t = start;
            start = end;
            end = t;
        }
        if (end >= expr.length()) {
            end = expr.length() - 1;
        }
        return expr.substring(start, end);
      

  7.   

    代码如下,要注意 Java 中第一个字符的索引为 0 而不是 Delphi 中的 1。
    public static String midString(String expr, int start, int end) {
        if (expr == null) return "";
        if (expr.length() == 0) return expr;
        if (start < 0 || end < 0) return "";
        if (start == end) {
            if (start < expr.length()) return "" + expr.charAt(start);
            else return "";
        }
        if (start > end) {
            int t = start;
            start = end;
            end = t;
        }
        ++end;  //Delphi 中截取的子串包含 start 和 end 索引位置的字符,而 substring 不包含 end 对应字符。
        if (end >= expr.length()) {
            end = expr.length() - 1;
        }
        return expr.substring(start, end);
    }
      

  8.   

    Pos 在 Java 中的实现:
    public static int posString(String substr, String source) {
        if (substr == null || source == null) return -1;
        return source.indexOf(substr);
    }
    同样需要注意,Java 中第一个字符的索引为 0 而不是 Delphi 中的 1,所以查找不到子串返回的是 -1 而不是  Delphi 中的 0。