码迷,mamicode.com
首页 > 其他好文 > 详细

基于26个字母,生成一个自动扩展的名称

时间:2020-12-22 13:04:31      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:stringbu   string   需要   增加   一个   序列   图片   --   bsp   

private String getNextNo(String str){

//可以扩展的序列号及顺序

List<String> noList = new Array(Arrays.list(["A","B","C","D","E","F","G"....]));//这里有26个字母,这里就不全罗列了

 

if(StringUtils.isBlank(Str)) return noList.get(0);

//需要增加的集合索引数值

int addIndex = 1;

List<Integer> indexList = new Array<>();

for(int i = str.length();i>0;i--){

  String s = str.substring(i-1,i);

  int index = noList.indexOf(s);

  if(index<0){//说明含有非字母,直接取加一位最小值

    indexList = new Array<>();

    for(int j=0;j<str.length()+1;j++){

      indexList.add(0);

    }

    break;

  }else{

    if(index+addIndex>noList.size()-1){

      indexList.add(0);

      if(i==1){//如果是最高位,需要再增加一位

        indexList.add(0);

      }

      addIndex=1;

    }else{

      indexList.add(index+addIndex);

      addIndex = 0;

    }

  }

}

StringBuffer sb = new StringBuffer();

for(int i=indexList.size()-1;i>=0;i--){

  sb.append(noList.get(indexList.get(i)));

}

return sb.toString();

}

 

代码执行结果如下:

技术图片

技术图片

 

技术图片

技术图片

 

基于26个字母,生成一个自动扩展的名称

标签:stringbu   string   需要   增加   一个   序列   图片   --   bsp   

原文地址:https://www.cnblogs.com/limeirong/p/14151826.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!