预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Java字符串排序中文和数字的方法Java字符串排序中文和数字的方法在Java中,排序需要复写的是equals方法和Comparable接口的publicintcompareTo(To);。下面是小编为大家带来的Java字符串排序中文和数字的方法,欢迎阅读。方法步骤:1.使用正则表达式来判断数字,多个连续的数字作为一组,2.一次检索出数字组合,3.检出下一组数字,如果有,则进入步骤4,否则进入步骤6.4.如果两组数字出现的位置相等,并且前面部分的字符串相等,则进入第5步。否则break,跳到第6步.5.如果前面部分的字符串完全一致。则比较两个数字的大小,如果大小一致,则进入下一组,即步骤3.如果大小不一致,则可以比对出来大小,比较结束6.调用String的'compareTo方法,病返回(流程结束)。完整的代码如下:importjava.util.ArrayList;importjava.util.Collections;importjava.util.List;importjava.util.regex.Matcher;importjava.util.regex.Pattern;//包装器类publicclassOrderWrapperimplementsComparable{Stringname=null;publicOrderWrapper(Stringname){this.name=name;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}@OverridepublicStringtoString(){returnString.valueOf(name);}@Overridepublicbooleanequals(Objectobj){if(obj==this){returntrue;}if(objinstanceofOrderWrapper){OrderWrapperother=(OrderWrapper)obj;if(null==this.name){returnfalse;}else{returnthis.name.equals(other.name);}}returnfalse;}//比较方法,相当于减法。(returnthis-wrapper)publicintcompareTo(OrderWrapperwrapper){if(null==wrapper){return1;}//直接相等if(this==wrapper||this.equals(wrapper)){return0;}Stringname1=this.name;Stringname2=wrapper.name;//特殊情形,name有一个为空的情况.if(null==name1){//都为空,认为相对if(null==name2){return0;}else{return-1;}}elseif(null==name2){return1;}//中间1-多个数字Patternpattern=Pattern.compile("D*(d+)D*");Matchermatcher1=pattern.matcher(name1);Matchermatcher2=pattern.matcher(name2);//System.out.println(pattern.pattern());//intindex1_step=0;intindex2_step=0;while(matcher1.find()){Strings1=matcher1.group(1);Strings2=null;if(matcher2.find()){s2=matcher2.group(1);}intindex1=name1.indexOf(s1,index1_step);intindex2=name2.indexOf(s2,index2_step);//index1_step=index1;index2_step=index2;//索引相等的情况下if(index1==index2){System.out.println("name1="+name1.length()+"nname2="+name2.length());System.out.println("index1="+index1+",index2="+index2);Stringpre1=name1.substring(0,index1);Stringpre2=name2.substring(0,index2);i