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(); } }
简单直接的方法: 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和
简单直接的方法: 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,代码少,适合初学者 缺点:如果需要处理大量数据的时候效率低
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();
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();
}
}
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和
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,代码少,适合初学者
缺点:如果需要处理大量数据的时候效率低
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);
}