获取最大长度存在颠倒字符串的子串

/*******************************************************************************
   * @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"));
    }
  }

时间: 2024-12-11 15:36:43

获取最大长度存在颠倒字符串的子串的相关文章

php获取字符串前几位的实例(substr返回字符串的子串用法)

在实际项目应用中,经常遇到使用php获取字符串前几位用来比较.赋值等等.今天给大家分享使用php substr 获取字符串前几位.后几位.指定位的用法. substr (PHP 4, PHP 5) substr - 返回字符串的子串 说明 string substr ( string $string , int $start [, int $length ] ) 返回字符串 string 由 start 和 length 参数指定的子字符串. 参数 string 输入字符串. start 如果

php获取字符串的长度及截取字符串

三.获取字符串的长度:strlen()函数 语法: int strlen(string str); 例: <?php echo strlen("www.bianceng.cn");?> 四.截取字符串:substr()函数 语法: substr(要截取的字符串,开始截取的位置,截取字符的个数) 例: <?php $a="www.bianceng.cn"; echo substr($a,13,2); //输出 cn?> 以上是小编为您精心准备的

js substring从右边获取指定长度字符串

 本篇文章主要是对js substring从右边获取指定长度字符串的示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 如下所示: 代码如下:  /*       Get the rightmost substring, of the specified length,       from a String object.    */     String.prototype.right = function (length_)     {             var _fr

javascript利用substr获取字符串的子串

javascript利用substr获取字符串的子串 <form name="form1" > <input type="text" value="" name="f2" > <input type="button" value="get" onclick="f()"> </form> <script> fu

生成指定长度的随机字符串

随机|字符串 '检测生成字符串的长度Response.Write(Len(iXuEr_Rnd_Str(100,1,1,1,1,1)) & "<br>")'以HTML编码输出到浏览器,避免含有某些特殊字符时不能正常显示Response.Write(Server.HTMLEncode(iXuEr_Rnd_Str(100,1,1,1,1,1)))'实际应用时,可以直接调用iXuEr_Rnd_Str(Length,S1,S2,S3,S4,Ln)Function iXuEr_

js判断出两个字符串最大子串的函数实现方法_javascript技巧

如下所示: <!DOCTYPE html> <html> <head> <title></title> </head> <script type="text/javascript"> function search(str1,str2) { var i=j=k=a=jk=kk=0; var m=str1.length; var n=str2.length; var index=0; var maxlen

C/C++中获取数组长度的方法示例_C 语言

学过C/C++的人都知道,在C/C++中并没有提供直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取其长度,那么对于其他类型的数组如何获取他们的长度呢? 其中一种方法是使用sizeof(array) / sizeof(array[0]), 在C语言中习惯上在使用时都把它定义成一个宏,比如: #define GET_ARRAY_LEN(array,len) {len = (sizeof(array) / sizeof(array[0]));} 而在C++中则可以使用模板

php根据指定位置和长度获得子字符串的方法_php技巧

本文实例讲述了php根据指定位置和长度获得子字符串的方法.分享给大家供大家参考.具体分析如下: php的substr函数功能非常强大,不断可以从前往后去子字符串还可以从后往前取字符串 <?php $string = "beginning"; print("Position counted from left: ".substr($string,0,5)."\n"); print("Position counted form rig

php中ob_get_length缓冲与获取缓冲长度实例_php技巧

本文实例讲述了php中ob_get_length缓冲与获取缓冲长度的方法.分享给大家供大家参考.具体方法如下: file_get_contents() 函数把整个文件读入一个字符串中,和 file() 一样,不同的是 file_get_contents() 把文件读入一个字符串. file_get_contents() 函数是用于将文件的内容读入到一个字符串中的首选方法,如果操作系统支持,还会使用内存映射技术来增强性能. 语法:file_get_contents(path,include_pat