当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:12:00  来源:本站整理

得到最大长度存在倒置字符串的子串[Java编程]

赞助商链接



  本文“得到最大长度存在倒置字符串的子串[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

/*******************************************************************************
   * @Description 字符串操作类
   * @Author CManLH@163.com
   * @Date 2008/05/24
   ******************************************************************************/
  public class StringX {
    /*
     * @Function 从指定字符串中获得最大长度存在倒置字符串的子串
     * @Parm str String 源字符串
     * @Return 存在倒置字符串的最大子串,存在多个时,仅返回最右边的一个
     */
    public String getMaxLenReverseString(String str) {
      int startIndex = -1;
      int lenOfReverseStr = 2;
      int tmp = -1;
      for ( int i = lenOfReverseStr; i <= str.length(); i++ ) {
        tmp = getPosOfReverseString(str, i);
        if ( tmp != -1 ) {
          lenOfReverseStr = i;
          startIndex = tmp;
          str = str.substring(0, tmp + lenOfReverseStr);
        } else {
          break;
        }
      }
      return startIndex == -1 ? str.substring(0,1) : str.substring(startIndex,startIndex + lenOfReverseStr);
    }
    /*
     * @Function 从指定字符串中,得到最右边特定长度存在其倒置字符串的子串的起始位置
     * @Parm str String 源字符串,将从中获得存在倒置字符串的子串
     * @Parm lenOfReverseStr int 倒置字符串的长度
     * @Return int 存在倒置字符串的子串的起始位置.如不存在子串的倒置字符串或参数错误,才返回-1
     */
    public int getPosOfReverseString(String str, int lenOfReverseStr) {
      if ( lenOfReverseStr > str.length() || lenOfReverseStr < 1 ) {
        return -1;
      }
      for ( int i = str.length() - lenOfReverseStr; i >= 0; i-- ) {
        if ( str.indexOf(getReverseString(str,i,lenOfReverseStr)) != -1 ) {
          return i;
        }
      }
      return -1;
    }
    /*
     * @Function 从指定字符串中得到其子串的倒置字符串
     * @Parm str String 源字符串,将从中得到倒置字符串
     * @Parm s int 将被倒置子串在源字符串中的起始位置
     * @Parm len int 将被倒置子串的长度
     * @Return String 倒置后得到的字符串.如参数错误就返回空字符串
     */
    public String getReverseString(String str, int s, int len) {
      int tmp = s + len;
      if ( tmp > str.length() || tmp < 1 || s * len < 0 ) {
        return "";
      }
      StringBuilder reverseStr = new StringBuilder(len);
      for ( int i = s + len - 1; i >= s; i-- ) {
        reverseStr.append(str.charAt(i));
      }
      return reverseStr.toString();
    }
    public static void main(String[] args) {
      StringX objTest = new StringX();
      System.out.println(objTest.getMaxLenReverseString("ARSTUVYWFDEVUTSRZ"));
      System.out.println(objTest.getMaxLenReverseString("ABC"));
      System.out.println(objTest.getMaxLenReverseString("DEFDEDJH"));
      System.out.println(objTest.getMaxLenReverseString("HIJKLKJIH"));
    }
  }


  以上是“得到最大长度存在倒置字符串的子串[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 从MySQL得到最大的性能
  • 得到最大长度存在倒置字符串的子串
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .