小练习1:如何将一个纯数字字符串升序,得到一个新字符串

相关知识:
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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值