输入一串字符,要求数字从小到大,字母从a到z排序,输出字母和数字的排序结果。

来源:互联网 发布:阿里云 云盘 包年包月 编辑:程序博客网 时间:2024/04/28 06:33

题目:输入 一串字符,包含数字[0-9]和小写字母[a-z],要求按数字从小到大,字母从a-z排序,并且所有数字排在字母的后面。

思路:首先将字母和数字进行分离,分别放入两个String字符串中,分别完成操作后输出。
        难点 1.对于String中字母和数字都要单个进行提取,放入到数组中,主要涉及char[]数组的使用,因为char对应单个字符。
备注:网上笔试题,代码是参考网上别人的,具体出处找不到了,请谅解。摘抄记录下来方便日后学习。如果有问题尽请批评指正,希望可以和大神一起交流。

java代码如下:

import java.util.Arrays;import java.util.Scanner;public class HelloB{public static void main(String[] args) {Scanner sc=new Scanner(System.in);      String nums = null;       String string=null;    nums = sc.nextLine();          //调用方法,并得到返回执行结果,    string =stringFrontNum(nums);    System.out.println(string);}        //将数字和字母分离的方法private static String stringFrontNum(String nums) {// TODO Auto-generated method stub String charString="";     String numString="";       for(int i=0;i<nums.length();i++){     //得到数字字符串     if (nums.charAt(i)>='0'  && nums.charAt(i)<='9')      numString+=nums.charAt(i);        //得到字母字符串    if(nums.charAt(i)>='a' && nums.charAt(i)<='z')                 charString+=nums.charAt(i);     }     //调用对字母排序的方法     charString=  sortString(charString);   //调用对数字排序的方法     numString=   sortNums(numString);   return charString+numString;}/*-------》》对字符串进行操作     * 1.将字符串转成数组     * 2.对数组进行排序     * 3.将排好序的数组转成字符串     * */public static String sortString(String charString) {// TODO Auto-generated method stub char[] chs=charString.toCharArray(); Arrays.sort(chs); charString=new String(chs); return charString;} /*-------》》对数字字符串进行操作     * 1.将数字字符串转成char,再转成String,然后Integer     * 2.对数组进行排序     * 3.将排好序的数组转成字符串     * */ public static String  sortNums(String numString) {// TODO Auto-generated method stub int[] is=new int[numString.length()];     for (int i = 0; i < is.length; i++) {is[i]=Integer.parseInt(String.valueOf(numString.charAt(i)));/*字符串中的数据一定要是数字,否则会出现异常                numString.charAt(i);得到字符串i位置的值,                String.valueOf(); 转换char类型为字符串                Integer.parseInt();由String转换成Integer *  */}          Arrays.sort(is);          StringBuffer stringBuffer=new StringBuffer();     for (int i = 0; i < is.length; i++) {stringBuffer=stringBuffer.append(is[i]);}     numString=stringBuffer.toString();  return numString;}}


阅读全文
0 0
原创粉丝点击