专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Java教程 » 获取字符串长度:获取最大长度存在巅倒字符串的子串代码 »正文

获取字符串长度:获取最大长度存在巅倒字符串的子串代码

来源: 发布时间:星期三, 2008年9月10日 浏览:91次 评论:0
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"));

}

}

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: