一、使用步骤
1.引入库
代码如下:
import java.util.ArrayList;
import java.util.List;
public class JavaTest {
public static void main(String[] args) {
List<String> strList=getSpilitStrList("1847519751890554548999");
System.out.println(strList);
}
/**
* 按8位长度进行字符串的分割输出,长度不足补0
* @param srcStr
* @return
*/
public static String getSpilitStr(String srcStr){
if ("".equals(srcStr.trim())){
return null;
}
if (srcStr.length()>100){
System.out.println("输入字符串过长!超过长度100");
return null;
}
// helloworldiamwanzhongliao
StringBuilder stringBuilder = new StringBuilder();
boolean flag=false;
String srcStrCopy=srcStr;
int count=1;
for (int i = 0; i < srcStr.length(); i++) {
char charAt = srcStr.charAt(i);
stringBuilder.append(charAt);
if (flag){
if (stringBuilder.toString().contains(" ")){
String[] strings = stringBuilder.toString().trim().split("\\s");
StringBuilder stringBuilder1 = new StringBuilder();
for (int k = 0; k < strings.length; k++) {
stringBuilder1.append(strings[k]);
}
int length = stringBuilder1.length();
if (length%8==0){
String substring = srcStrCopy.substring(count*8);
srcStr=substring;
i=-1;
stringBuilder.append(" ");
count++;
if (srcStr.length()/8<1){
StringBuilder stringBuilder4 = new StringBuilder();
stringBuilder4.append(srcStr);
for (int j = 0; j < 8-srcStr.length(); j++) {
stringBuilder4.append("0");
}
stringBuilder.delete(stringBuilder.toString().lastIndexOf(" "),stringBuilder.toString().length());
stringBuilder.append(" ");
stringBuilder.append(stringBuilder4.toString());
break;
}
continue;
}else {
if (srcStr.length()/8<1){
StringBuilder stringBuilder3 = new StringBuilder();
stringBuilder3.append(srcStr);
for (int j = 0; j < 8-srcStr.length(); j++) {
stringBuilder3.append("0");
}
stringBuilder.delete(stringBuilder.toString().lastIndexOf(" "),stringBuilder.toString().length());
stringBuilder.append(" ");
stringBuilder.append(stringBuilder3.toString());
break;
}
}
}
}else {
if (stringBuilder.toString().length()%8==0){
String substring = srcStrCopy.substring(count*8);
srcStr=substring;
i=-1;
stringBuilder.append(" ");
count++;
flag=true;
continue;
}else if (srcStrCopy.length()/8<1){
StringBuilder stringBuilder2 = new StringBuilder();
stringBuilder2.append(srcStrCopy);
for (int j = 0; j < 8-srcStrCopy.length(); j++) {
stringBuilder2.append("0");
}
return stringBuilder2.toString();
}
}
}
return stringBuilder.toString();
}
/**
* 获取分割字符串集合
* @return
*/
public static List<String> getSpilitStrList(String srcStr){
String spilitStr = getSpilitStr(srcStr);
String[] splitStrArr = spilitStr.split("\\s");
int length = splitStrArr.length;
ArrayList<String> stringArrayList = new ArrayList<>();
if (length>1){
for (int i = 0; i < splitStrArr.length; i++) {
if (i==splitStrArr.length-1){
if (splitStrArr[splitStrArr.length-1].startsWith("0")){
continue;
}
}
stringArrayList.add(splitStrArr[i]);
}
}else {
stringArrayList.add(spilitStr);
}
return stringArrayList;
}
}
注:把算法接口中的数字8改成3, 在写一个拼接字符串的算法可以实现对任何金额大小的逗号拆分。