java输入一个字符串,要求将该字符串中出现的英文字母, * 按照顺序输出,区分大小写,且大写优先

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
java输入一个字符串,要求将该字符串中出现的英文字母, * 按照顺序输出,区分大小写,且大写优先的更多相关文章
- C语言:根据形参c中指定的英文字母,按顺序打印出若干后继相邻字母,-主函数中放入一个带头节点的链表结构中,h指向链表的头节点。fun函数找出学生的最高分-使用插入排序法对字符串中的字符进行升序排序。-从文件中找到指定学号的学生数据,读入次学生数据,
//根据形参c中指定的英文字母,按顺序打印出若干后继相邻字母,输出字母的大小与形参c一致,数量由形参d指定.例如:输入c为Y,d为4,则输出ZABC. #include <stdio.h> ...
- 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
题目描述 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数. 输入描述: 输入一个int型整数 输出描述: 按照从右向左的阅读顺序,返回一个不含重复数字的新的整数 输入例子 ...
- Java 输入一个整数,计算它各位上数字的和。(注意:是任意位的整数)
import java.util.*; /* * 输入一个整数,计算它各位上数字的和. * (注意:是任意位的整数) */ public class Sum02 { public static voi ...
- Java 输入一个正整数,按蛇形打印。
参考博客: http://yangyingming.com/article/371/ //输入一个正整数n(n<=30),输出n所对应的蛇形矩阵.举两个例子: //n=10时,蛇形矩阵为: ...
- [java]输入一个算术表达式输出结果
动手有益. 输入一个表达式,没有括号,数字小于0-9之间,输出计算结果,所有的中间结果化为整形.例如: 输入:3+8×2/9-2 输出:2 /** * input a calculate stri ...
- java输入一个字符串,打印出该字符串中字符的所有排列,随机打乱排序
import java.util.ArrayList;import java.util.Collections;import java.util.List; public class Test7{ ...
- java输入一个字符串,输出该字符串的所有的排序
public class Sort { public static void arrangeSequence(char[] strArr,int i){ char temp; ArrayList< ...
- java 输入一个字符串,打印出该字符串中字符的所有排列
import java.util.Scanner; public class Demo001 { public static void main(String[] args) { String str ...
- 用java写一个两个任意长度字符串数字和的算法
package com.cn.test.string; public class StringTest { public static void main(String[] args) { Strin ...
- Java读取一个文本文件拼接成一个字符串(readFileToString)
import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.I ...
随机推荐
- 取消Andorid设备的严格模式
在做文件拍照选择等应用时,发现7.0以上手机需要主动关闭严格模式才能让代码不报错 通过关闭严格模式绕过fileprovider 权限的控制的方法,绕过FileProvider在应用间共享文件的限制 7 ...
- CF1548B Integers Have Friends
洛咕 题意: 给定 \(n\) 和一个长度为 \(n\) 的数组 \(a\),求一个最长的区间 \(\left[l,r\right]\),使得存在 \(m\geq 2\) 和 \(k\),对于所有 \ ...
- 如何获取android环境自带的jar包
首先找到你需要用到的类,Ctrl 并点击跳转到这个类 跳转过来之后,找到这个类所在的包 Ctrl并点击,此时会跳转到这个包所在的jar的位置 右键class.jar并选择在文件资源浏览器打开 打开以后 ...
- div 自动高度
问题: 一个页面分上下二部分,上部分高度是固定不变的,要求下部分高度自动占满屏幕,如何实现? 第一感觉是准备用 JS 实现. 今天发现一个用 CSS 实现的方法 position: fixed; bo ...
- gym104076H
hehezhou 的鬼才神仙题解根本看不懂好吧. 首先判掉 \(n=1\). 然后考虑最后一步,发现只用考虑怎样的左右端点可能见面. 左右和右左构成双射,算出总量减去自己配自己再除 \(2\) 即可. ...
- select选项中的内容和其他输入框不对齐
有时候总会遇见莫名其妙的问题,如图中(为了清除的表示问题,我又用画图将偏离更夸张些).为了解决这个问题,只好取消样式优化,同时自己加小箭头.但是为什么会有这样的问题啊 /*取消iphone样式优化*/ ...
- variadic templates (数量不定的模板参数)
void print() {} // 当只剩下一个参数时,args为空,执行这个版本的print template<typename T, typename... Types> void ...
- Token过期导致页面多个请求报错提示多次
关于Token过期导致页面多个请求报错提示的问题 我们先在全局定义一个变量(global.js)来控制token是否过期 export default { // token无效标记 TokenInva ...
- 「SOL」射命丸文的笔记 (洛谷)
讲题人:"这是一个很经典的模型,大家应该都会" 我:"???" # 题面 给出 \(m\),求所有 \(m\) 个点的有标号强联通竞赛图的哈密顿回路数量的平均数 ...
- mysql设置表名不区分大小写
1.root登录,修改/etc/my.cnf2.在mysqld下加入:lower_case_table_names=13.重新数据库