递归实现:按固定长度截取字符串
2017-09-05 本文已影响19人
Suremotoo
public class TestSubStr {
public static void main(String[] args) {
String str = "123456789";
int num = 2;
String[] strs = subStrByNum(str, num);
for (String s : strs) {
System.out.println(s);
}
}
/**
* [subStrByNum 按截取长度截取,返回字符串]
* @param str [需截取的字符串]
* @param num [按多少长度截取]
* @return [截取完的字符串数组]
*/
public static String[] subStrByNum(String str, int num) {
StringBuffer result = new StringBuffer();
String string = subStr(result, str, num);
return string.split("~");
}
/**
* [subStr 截取字符串的方法]
* @param result [用来存放截取处理后的字符串]
* @param str [需截取的字符串]
* @param num [按多少长度截取]
* @return [处理后的字符串]
* @description 该方法用递归实现按固定长度截取字符串
*/
public static String subStr(StringBuffer result, String str, int num) {
if (str.length() <= num) {
result.append(str.substring(0));
} else {
String subStr = str.substring(0, num);
result.append(subStr + "~");
String surStr = str.substring(num);
if (surStr.length() > num) {
subStr(result, surStr, num);
} else {
result.append(surStr);
}
}
return result.toString();
}
}