提示用户键盘录入一个包含数字和字母的字符串,遍历字符串分别筛选数字和字母把他们分别拼接成字符串,按照数字在前字母在后的规则组成一个新的字符串

解决方案 »

  1.   


    import java.util.Scanner;
    public class Test{
    public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.println("请输入一个初始字符串:");
    String str = input.next();//控制台输入的原始字符串
    System.out.println(
    separateAndSortString(str));
    input.close();

    }
    //分离初始字符串中数字和字符并且重新排序的方法的方法
    public static String separateAndSortString(String str){
    //jhjhsf24934kjfs3432hh423j4
    StringBuffer sb1 = new StringBuffer();//用于表示新的数字字符串
    StringBuffer sb2 = new StringBuffer();//用于表示新的字符字符串
    StringBuffer sb3 = new StringBuffer();//用于表示除了字母和数字之外的字符串
    for (int i=0;i<str.length();i++ ) {
    //如果这字符串下标为i的位置的字符是数字的情况,[0-9]代表数字
    if(String.valueOf(str.charAt(i)).matches("[0-9]")){
    sb1.append(str.charAt(i));
    }else if(String.valueOf(str.charAt(i)).matches("[A-Za-z]")){
    sb2.append(str.charAt(i));
    }else{
    sb3.append(str.charAt(i));
    }
    //如果这字符串下标为i的位置的字符是数字的情况,
    }
    return sb1.append(sb2).append(sb3).toString();
    }
    }
      

  2.   

    简单直接的方法:
    public class PartitionApplication {
    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.println("Please enter a string line:");
    String line=scanner.nextLine(); String[] strs=line.split("\\d+");
    String[] digits=line.split("\\D+");
    String result=String.join("",digits)+String.join("",strs);
    System.out.println(result);
    }
    }
    这个实现没有使用Pattern和
      

  3.   

    简单直接的方法:
    public class PartitionApplication {
    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.println("Please enter a string line:");
    String line=scanner.nextLine(); String[] strs=line.split("\\d+");
    String[] digits=line.split("\\D+");
    String result=String.join("",digits)+String.join("",strs);
    System.out.println(result);
    }
    }
    优点:没有使用Pattern和Matcher,代码少,适合初学者
    缺点:如果需要处理大量数据的时候效率低
      

  4.   

    public class PartitionApplication {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            System.out.println("Please enter a string line:");
            String line=scanner.nextLine();
     
            String[] strs=line.split("\\d+");
            String[] digits=line.split("\\D+");
            String result=String.join("",digits)+String.join("",strs);
            System.out.println(result);
        }