小练习1:如何将一个纯数字字符串升序,得到一个新字符串
2016-10-01 19:44
337 查看
相关知识: 1.字符串转换为字符数组 String类的实例方法:char[] toCharArray() 2.字符数组转换为字符串 String类的构造方法:String(char[] chr) 3.数组转化为字符串 Arrays类的静态方法:String toString(type[] arrayName) (但是此处得到的字符串是这种形式:[ , , , ,]) 思路: 1.将纯数字字符串用String类的实例方法toCharArray()变成字符数组 2.将数字元素赋给一个新的int数组,当然中间用switch case的形式将字符‘1’,变成数字1 3.对得到的int[]进行排序 4.使用Arrays类的静态方法toString(int[])将int数组变成(有括号和逗号)字符串 5.写一个方法剔除上面字符串中的非数字元素,返回只含有数字的字符串
package knowledge_basic; import java.util.Arrays; import java.util.Scanner; /** * * <p>The class is useful to practice using the command javadoc * to create my first Java Doc.</p> * @author Rivers * @version 1.00 */ public class JavaDocTest { /** * <p>Test how to modify field</p> * @see JavaDocTest#JAVADOC_TEST */ public static String JAVADOC_TEST; /** * <p>纯数字字符串通过此方法得到升序字符串</p> * @param s String * @return String */ public static String sortArray(String s) { String result=s; if(s.matches("\\d*")) { char[] c=s.toCharArray(); int[] a=new int[c.length]; for(int i=0;i<c.length;i++) { switch (c[i]) { case '0': {a[i]=0;break;} case '1': {a[i]=1;break;} case '2': {a[i]=2;break;} case '3': {a[i]=3;break;} case '4': {a[i]=4;break;} case '5': {a[i]=5;break;} case '6': {a[i]=6;break;} case '7': {a[i]=7;break;} case '8': {a[i]=8;break;} default: {a[i]=9;break;} } } a=sortArray(a); result=Arrays.toString(a); result=delNotNum(result); } else System.out.println("error:不是纯数字"); return result; } /** * <p>整型数组通过此方法获得升序数组</p> * @param a int[] * @return int[] */ public static int[] sortArray(int[] a) { for(int j=0;j<a.length-1;j++) { for(int i=j;i<a.length;i++) { if(a[i]<=a[j]) { int tmp=a[j]; a[j]=a[i]; a[i]=tmp; } } } return a; } /** * <p>任意字符串通过此方法获得删除数字元素后的字符串</p> * @param s String * @return String */ public static String delNotNum(String s) { int sum=0; char[] c=s.toCharArray(); char[] c2=new char[c.length]; for(int i=0;i<c.length;i++) { if(c[i]=='0') {c2[sum]=c[i];sum++;} else if(c[i]=='1') {c2[sum]=c[i];sum++;} else if(c[i]=='2') {c2[sum]=c[i];sum++;} else if(c[i]=='3') {c2[sum]=c[i];sum++;} else if(c[i]=='4') {c2[sum]=c[i];sum++;} else if(c[i]=='5') {c2[sum]=c[i];sum++;} else if(c[i]=='6') {c2[sum]=c[i];sum++;} else if(c[i]=='7') {c2[sum]=c[i];sum++;} else if(c[i]=='8') {c2[sum]=c[i];sum++;} else if(c[i]=='9') {c2[sum]=c[i];sum++;} } String result=new String(c2); return result; } /** * <p>测试如何将纯数字字符串升序排列</p> * @param args String[] */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.print("请输入一个纯数字字符串(0~9)不限位数:"); Scanner sc=new Scanner(System.in); String s=sc.nextLine(); sc.close(); System.out.println("排序后的字符串为: "+sortArray(s)); } }
请输入一个纯数字字符串(0~9)不限位数:31398741974
排序后的字符串为: 11334477899
相关文章推荐
- 如何判断一个字符串只包含数字字符
- java 如何判断一个字符串是数字
- php中如何把一个数字字符串作为一个变量
- 如何得到一个数据库连接字符串
- 有一个字符串,如"11.2美元34人民币";如何将数字与单位分开,放入数组中呢,数组比如 attr[0]=11.2 attr[1]=美元 ,依次类推
- C#如何判断一个字符串中中文和字母或数字的个数(转载)
- 【C编程练习】2013华为校园招聘机试题目题5:将一个int类型的数字转化为字符串,并判断有无重复字符串(长度应大于2)有返回1,无返回2
- java如何做到判断一个字符串是否是数字
- 如何用正则给一个数字的字符串从后向前每三位加一个逗号?
- ios学习之 如何判断一个字符串的内容是纯数字 一般用于手机号注册
- c# 如何判断一个字符串是一个数字
- 算法函数:得到一个字符串中的最大长度的数字
- 如何获得一个字符串中数字的长度
- 如何用java语言编写“求一个字符串中的的字母,数字,空格的数目。”
- 如何得到一个sql server 数据库连接字符串
- oracle如何判断一个字符串是否为数字或日期
- 【练习】输入一个已经按升序排序过的数组和一个数字sum,在数组中查找两个数,使得它们 的和正好是输入的那个数字sum,要求时间复杂度为O(n)
- 【练习】写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)功能:在字符串中找出连续最长的数字串,并把这个串的长度返回,
- 如何判断一个字符串是不是纯数字
- [Python Tip]如何判断一个字符串只包含数字字符