您的位置:首页 > 编程语言 > Java开发

java获取指定字符串的下一个

2016-06-30 00:00 477 查看
摘要: 例如:传入参数12a9bz,执行后生成12a9ca;
传入参数12a9zz,执行后生成12b0aa;

工作中遇到的奇葩需求

package com.hsi.utils;

import java.util.Arrays;
import java.util.List;

public class AddString {
private static String qq ="";
private static int num=0;
/**
* 实现字符串+1
* 如ab9Z变为ac0A,
* @param a
* @return
*/
public static String returnString (String a) {
//判断是否为纯数字
qq = a;
try{
Integer pcode = Integer.valueOf(qq).intValue()+1;
qq = ""+pcode;

}catch(Exception e){

qq = bre(String.valueOf(qq.charAt(qq.length()-1)));
}
return qq;
}

public static String bre(String az) {
String y[] = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};
List list = Arrays.asList(y);
for (int k = 0; k < y.length; k++) {
if(qq.length()-num<0){
break;
}
if(az.equals("Z")){
//当等Z的时候,这个时候取的应该是A

StringBuffer sb = new StringBuffer(qq);
sb.replace(qq.length()-num-1, qq.length()-num, "A");
qq = sb.toString();
num++;
qq = bre(String.valueOf(qq.charAt(qq.length()-1-num)));
return qq;

}
else if (az.equals("z")) {
StringBuffer sb = new StringBuffer(qq);
sb.replace(qq.length()-num-1, qq.length()-num, "a");
qq = sb.toString();
//qq = qq.substring(0,qq.length()-1)+"0";
num++;
qq = bre(String.valueOf(sb.toString().charAt(sb.toString().length()-1-num)));
return qq;
}
else if (az.equals("9")) {
StringBuffer sb = new StringBuffer(qq);
sb.replace(qq.length()-num-1, qq.length()-num, "0");
qq = sb.toString();
num++;
qq = bre(String.valueOf(sb.toString().charAt(sb.toString().length()-1-num)));
return qq;
}
else{
if(num > 0){
if(!isNum(String.valueOf(qq.charAt(qq.length()-1-num)))){
StringBuffer sb = new StringBuffer(qq);
sb.replace(qq.length()-1-num, qq.length()-num, y[list.indexOf(az)+1]);
qq = sb.toString();
}
if(isNum(String.valueOf(qq.charAt(qq.length()-1-num)))){
StringBuffer sb = new StringBuffer(qq);
int ss = Integer.valueOf(String.valueOf(qq.charAt(qq.length()-1-num))).intValue()+1;
sb.replace(qq.length()-1-num, qq.length()-num, ""+ss);
qq = sb.toString();
}}
else{
StringBuffer sb = new StringBuffer(qq);
sb.replace(qq.length()-num-1, qq.length()-num, y[list.indexOf(az)+1]);
qq = sb.toString();
}
return qq;
}
}
return null;
}
public static boolean isNum(String str){
return str.matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: