java输入一个字符串,要求将该字符串中出现的英文字母, * 按照顺序输出,区分大小写,且大写优先
Posted on 2021-05-18 14:37 心环 阅读(350) 评论(0) 编辑 收藏 举报public static void main(String[] args) { String input ="A8r4c5jaAjp#7"; //转为char[] char[] inputArr =input.toCharArray(); //存储 大写字母、小写字母 List<String> upperCaseList = new ArrayList<>(), lowerCaseList =new ArrayList<>(); for(int i=0;i<inputArr.length;i++) { if(inputArr[i] >=65 && inputArr[i] <=90) { //大写字母 upperCaseList.add(String.valueOf(inputArr[i])); }else if(inputArr[i] >=97 && inputArr[i] <=122) { //小写字母 lowerCaseList.add(String.valueOf(inputArr[i])); } } //将大写字母、小写字母 list转为String[] String[] upperCaseArr =upperCaseList.toArray(new String[0]); String[] lowerCaseArr =lowerCaseList.toArray(new String[0]); //对大写字母进行排序 Arrays.sort(upperCaseArr); //对小写字母进行排序 Arrays.sort(lowerCaseArr); //取出大写字母,拼成字符串 StringBuilder result =new StringBuilder(); for(int i=0;i<upperCaseArr.length;i++) { result.append(upperCaseArr[i]); } //定义接收剩余字母 StringBuilder remainingStr =new StringBuilder(); for(int i=0;i<lowerCaseArr.length;i++) { //将小写字母转为大写字母 String upperCaseStr =lowerCaseArr[i].toUpperCase(); //取出大写字母所在索引 int index =result.lastIndexOf(upperCaseStr); if(index !=-1) { //存在大写字母 //去开头,拼接 String startStr =result.substring(0, index +1) +lowerCaseArr[i]; //取结尾 String endStr =result.substring(index + 1); //重新赋值 result =new StringBuilder(startStr + endStr); }else { //不存在大写字母 remainingStr.append(lowerCaseArr[i]); } } //将不存在的小写字母拼接 result.append(remainingStr); System.out.println(result); }
结果 :AAacjjpr