熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

獲取最大長度存在巅倒字符串的子串

2013-11-23 18:46:34  來源: Java核心技術 

  /*******************************************************************************

  * @Description 字符串操作類

  * @Author

  * @Date //

  ******************************************************************************/

  public class StringX {

  /*

  * @Function 從指定字符串中獲取最大長度存在巅倒字符串的子串

  * @Parm str String 源字符串

  * @Return 存在巅倒字符串的最大子串存在多個時僅返回最右邊的一個

  */

  public String getMaxLenReverseString(String str) {

  int startIndex = ;

  int lenOfReverseStr = ;

  int tmp = ;

  for ( int i = lenOfReverseStr; i <= strlength(); i++ ) {

  tmp = getPosOfReverseString(str i);

  if ( tmp != ) {

  lenOfReverseStr = i;

  startIndex = tmp;

  str = strsubstring( tmp + lenOfReverseStr);

  } else {

  break;

  }

  }

  return startIndex == ? strsubstring() : strsubstring(startIndexstartIndex + lenOfReverseStr);

  }

  /*

  * @Function 從指定字符串中獲得最右邊特定長度存在其巅倒字符串的子串的起始位置

  * @Parm str String 源字符串將從中獲取存在巅倒字符串的子串

  * @Parm lenOfReverseStr int 巅倒字符串的長度

  * @Return int 存在巅倒字符串的子串的起始位置如不存在子串的巅倒字符串或參數錯誤才返回

  */

  public int getPosOfReverseString(String str int lenOfReverseStr) {

  if ( lenOfReverseStr > strlength() || lenOfReverseStr < ) {

  return ;

  }

  for ( int i = strlength() lenOfReverseStr; i >= ; i ) {

  if ( strindexOf(getReverseString(strilenOfReverseStr)) != ) {

  return i;

  }

  }

  return ;

  }

  /*

  * @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 > strlength() || tmp < || s * len < ) {

  return ;

  }

  StringBuilder reverseStr = new StringBuilder(len);

  for ( int i = s + len ; i >= s; i ) {

  reverseStrappend(strcharAt(i));

  }

  return reverseStrtoString();

  }

  public static void main(String[] args) {

  StringX objTest = new StringX();

  Systemoutprintln(objTestgetMaxLenReverseString(ARSTUVYWFDEVUTSRZ));

  Systemoutprintln(objTestgetMaxLenReverseString(ABC));

  Systemoutprintln(objTestgetMaxLenReverseString(DEFDEDJH));

  Systemoutprintln(objTestgetMaxLenReverseString(HIJKLKJIH));

  }

  }


From:http://tw.wingwit.com/Article/program/Java/hx/201311/25702.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.