题目:输入 一串字符,包含数字[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;
}
}
本文介绍了一种用于对混合字符串(包含数字和小写字母)进行排序的算法。该算法首先将字符串中的数字和字母分离,然后分别对数字和字母进行排序,最后将排序后的数字和字母重新组合。文章提供了完整的Java实现代码。
8480

被折叠的 条评论
为什么被折叠?



