程序设计题
输入一个字符串,要求输出能把所有的小写字符放前面,大写字符放中间,数字放后面,并且中间用空格隔开,如果同种类字符间有不同种类的字符,输出后也要用字符隔开
如:
输入:12abc3KF12
输出:abc KF 12 3 12
输入: rwr21r3hello666world
输出 :rwr r hello world 21 3 666
以下是在eclipse中的java实现代码:
import java.util.Scanner;
public class program2017 {
public static void main(String[] args){
//从控制台读取数据
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
line= line.trim(); //去头尾空格
/**对字符串进行分割*/
//分割出仅含数字的字符串
String[] digits = line.split("(\\D){1,}");//"\D"表示非数字,第一个\表示转义,即用非数字对字符串进行分割
//分割出仅含大写字母的字符串
String[] uppercase = line.split("[a-z0-9]+");//用小写字母或数字0-9进行分割
//分割出仅含小写字母的字符串
String[] lowercase = line.split("[A-Z0-9]+");//用大写字母或数字0-9进行分割
System.out.println("lowercase_length:" + lowercase.length);
System.out.println("uppercase_length:" + uppercase.length);
System.out.println("digits_length:" + digits.length);
//test:print
for(String s: lowercase){ //输出小写字母
if(s.length() != 0 && !(s.equals("")) && !(s.equals("\n"))){ //保证不输出空串以及换行符
System.out.print(s + " ");
}
}
for(String s: uppercase){ //输出大写字母
if(!(s.equals("")) && s.length() > 0 && !(s.equals("\\n"))){
System.out.print(s + " ");
}
}
for(String s: digits){ //输出数字
if(s.length() != 0 && !(s.equals("")) && !(s.equals("\n"))){ //保证不输出空串
System.out.print(s + " ");
}
}
}
}
程序运行结果如下: