求救!!java中怎么让一串字符串自增

问题描述

RT:其中这个字符串有可能包含字母,字母也需要自增。。。

解决方案

解决方案二:
lz,能不能说清楚点
解决方案三:
可以把字符串转成字符数组。再一个个加减,再转成字符串Stringss="123adbc";char[]ca=ss.toCharArray();char[]cap=newchar[ca.length];for(inti=0;i<ca.length;i++){cap[i]=(char)(ca[i]+1);}

解决方案四:
把字符串转换成数组,再调用Arrays.sort();方法应该就可以了。数字,字母就都排好序了升序排序
解决方案五:
只需要考虑一下如何进位,剩下的都是字符串处理
解决方案六:
好比:Strings="A01";可以自动增长为:s="A02"..................s="B99"........;这样类似的,一直增到“Z99”;
解决方案七:
publicclassRun{//甲、乙、丙、丁、戊、己、庚、辛、壬、癸publicstaticfinalint[]skyBranch=newint[]{0,1,2,3,4,5,6,7,8,9};//子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥publicstaticfinalchar[]earthBranch=newchar[]{'a','b','c','d','e','f','g','h','i','j','k','l'};publicstaticvoidmain(String[]args){for(inti=0;i<2020;i++){try{caculate(i);if((i%20)==0){System.out.println("");}else{System.out.print(",");}}catch(RuntimeExceptione){System.out.println("Year"+i+"metexception.");}}}privatestaticvoidcaculate(inti){if(i<4){thrownewIllegalArgumentException("Thestartingyearmustbegreaterthan4");}intrealYear=i-4;System.out.print("year"+i+"=["+skyBranch[realYear%10]+"]["+earthBranch[realYear%12]+"]");}}

类似这个干支纪年法,随便改一改就OK了
解决方案八:
我写了两个版本的例子,第一个版本是我心目中字符串自增应该实现的基本功能,但是输出并不完全符合你的要求【A99的后面是A9A,A9B】,但是可以供你参考,以实现出更复杂的功能来。第二个版本能够满足你的要求,可以稍微改动一下把屏幕输出的值保存到一个列表中,然后就可以用循环等办法取得下一个值了。packagetopics_390910834;publicclassStringIncrement1{publicstaticvoidmain(String[]args){char[]exclusionList=newchar['A'-'9'-1];for(charcc='9'+1;cc<'A';cc++){exclusionList[cc-'9'-1]=cc;}//System.out.println(exclusionList);for(Stringss="A01";!(ss.equals("Z99"));ss=increment(ss,'0','Z',exclusionList)){System.out.println(ss);}}/***让一串字符串自增**@paraminputString*输入的字符串*@paramstartChar*开始字符,比如字符0*@paramendChar*结束字符,比如字符Z*@paramexclusionList*除外列表,比如字符9和字符A之间的[:;<=>?]*@return输出的字符串*/publicstaticStringincrement(StringinputString,charstartChar,charendChar,char[]exclusionList){char[]inputCharArray=inputString.toCharArray();booleancarryFlag=false;for(intii=inputCharArray.length-1;ii>0;ii--){if(inputCharArray[ii]==endChar){inputCharArray[ii]=startChar;carryFlag=true;}else{if(ii==inputCharArray.length-1||carryFlag){do{inputCharArray[ii]++;}while(exclusionList[0]<=inputCharArray[ii]&&inputCharArray[ii]<=exclusionList[exclusionList.length-1]);}}}returnString.valueOf(inputCharArray);}}

packagetopics_390910834;publicclassStringIncrement2{publicstaticvoidmain(String[]args){for(charcc='A';cc<='Z';cc++){for(intii=1;ii<=99;ii++){System.out.printf("%s%02dn",cc,ii);}}}}

解决方案九:
只是简化的例子,输入数据由调用方确保是正常值如果需要通用一些的话,至少需要判断是否为null以及长度是否为0,还需要考虑添加一些异常的处理
解决方案十:
挺好玩的,给你写了个类publicclassStringBizzare{//CODEforafinalprivateintBEGIN_CODE=97;finalprivateintEND_CODE=122;finalprivateintLENGTH=26;finalprivateStringDEFAULT="a00";privateintcurrantIndex;privateintcurrantNumber;publicStringBizzare(Stringbizzare)throwsException{if(bizzare==null||bizzare.isEmpty()){parse(DEFAULT);}else{parse(bizzare);}}privatevoidparse(Stringbizzare)throwsException{if(bizzare==null||bizzare.isEmpty()){thrownewException("Emptystring,WTF!");}charfirstChar=bizzare.charAt(0);if(firstChar<BEGIN_CODE||firstChar>END_CODE){thrownewException("Invalidstring,WTF!");}try{currantNumber=Integer.parseInt(bizzare.substring(1));}catch(Exceptionex){thrownewException("Invalidstring,WTF!");}currantIndex=firstChar-BEGIN_CODE;}privateStringcompose(){charc=(char)(currantIndex+BEGIN_CODE);Stringn=String.valueOf(currantNumber);returnc+(n.length()==1?"0"+n:n);}publicStringincrement(intcount){currantNumber+=count%100;currantIndex+=count/100%LENGTH;returncompose();}@OverridepublicStringtoString(){returncompose();}publicstaticvoidmain(String[]args)throwsException{System.out.println(newStringBizzare(null));System.out.println(newStringBizzare("b05").increment(105));System.out.println(newStringBizzare("b05").increment(-102));}}

时间: 2024-12-27 09:06:10

求救!!java中怎么让一串字符串自增的相关文章

java中需要统计子串在字符串中出现多少次。 麻烦大家帮我详细解释一下那串代码是什么意思。谢谢了!

问题描述 java中需要统计子串在字符串中出现多少次. 麻烦大家帮我详细解释一下那串代码是什么意思.谢谢了! String str="abcjavadefjavadddjava"; String newStr="java"; int count=0; int i=0;//出现的下标 while(str.indexOf(newStr,i)>=0 && i<=str.length()){ count++; i = str.indexOf(ne

java中byte数组与十六进制字符串相互转换

最近在做加密算法的研究和使用,经常会用到byte数组和十六进制字符串的转换.之前对于此类问题我一般都是使用BigInteger这个类转换一下算了,这样为了看输出不是乱码.这其实都不是根本上的解决方案. 最简单的转换方法: /** * @see 将byte[]数组转换为String字符串 * @author Herman.Xiong * @date 2014年5月5日 17:15:42 * @param data byte数组 * @return String 转换后的字符串 */ public

Java中substring的参数及字符串的相等判断

字符串操作无疑在各种编程语言及平台上都是必不可少的,功能相通,但用法却存在微妙的区别,比如java中取子串及相等的判断,切入正题. 1. substring 常用的用法包括: (1)取索引为startidx之后(包括索引为startidx的字符)的字符串. 例:String strHello = "hello"; String strSub = strHello.substring(2); //得到"llo" (2)取起始索引为startidx之后(包括索引为sta

java中按字节截取String字符串.

字符串 /** * 取字符串的前toCount个字符 * * @param str 被处理字符串 * @param toCount 截取长度 * @param more 后缀字符串 * @version 2004.11.24 * @author zhulx * @return String */ public static String substring(String str, int toCount,String more) { int reInt = 0; String reStr = "

scanner-java中如果键盘输入一个字符串,这个字符串为一个空格……

问题描述 java中如果键盘输入一个字符串,这个字符串为一个空格-- java中如果键盘输入一个字符串,这个字符串为一个空格,则用toCharArray()方法,将其转换为一个字符数组,这个数组里面是什么内容?import java.util.Scanner;public class Main { public static void main(String[] args){ System.out.println(""请输入一串字符:""); Scanner in=

正则表达式概述及在JAVA中的使用

概述 你是否使用过查找*.tmp临时文件? 你是否使用过编辑工具中的查找/替换功能? 其实它们都使用了正则表达式 正则表达式的作用 提供更强大的字符串处理能力 测试字符串内的模式 例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或身份证号码模式.即数据验证 替换文本 可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它. 基于模式匹配从字符串中提取子字符串 可以查找文档内或输入域内特定的文本. 在JAVA中使用正则表达式 正则表达式在字符串处理上有着强大的功能

数据结构 算法-如何用java中串的操作方法找出两个字符串中所有共同的字符

问题描述 如何用java中串的操作方法找出两个字符串中所有共同的字符 通过实现对串的基本操作的算法设计,运用模式匹配算法KMP和Brute-Force,展出两个字符串中所有共同的字符,判断一个字符串是否为E-mail地址

java中字符串处理问题

问题描述 java中字符串处理问题 在一个txt文件中,有几行字符串,每行的格式如下, abc1110011110102 abc123001111010a 根据条件做字符串的转换,条件: 1.字符串以abc开头 2.字符串中包含字串001111 3.在字串001111之后的第二个非0字符串如果是数字的话改变成0,如果不是数字不改变 因此,上面给出的两个字符串结果为 abc1110011110100 abc123001111010a 解决方案 public static void main(Str

Java中利用字符串连接解决问题

在应用程序开发过程中,使用的最多的数据类型就是字符串 .在Java语言平台中也是如此.为此掌握 字符串的处理技巧,无疑是一位数据库管理员必须要掌握的技能.笔者这里就给大家介绍如何利用字符串 连接来解决一些实际的问题. 一. 字符串连接概述. 在编写应用程序的时候,我们往往需要将多个字符串连接起来,来完成特定的功能.如现在有两个字 符串变量,分别为名字(变量名为name)和年龄(变量名为age).现在需要在屏幕上输出"我的名字是某某 ,年龄多少"这个字符串.这个语句该如何写呢?可以写为&