例题一:输入 一串字符,包含数字[0-9]和小写字母[a-z],要求按数字从小到大,字母从a-z排序,并且所有数字排在字母的后面
思路:分类成两个字符串,并排序,再合并成一个字符串,进行返回
算法实现:
public class Solution {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
String str=scan.nextLine();
//调用方法,并得到返回执行结果,
String result=solution(str);
System.out.println(result);
}
//分类成两个字符串,并排序,再合并成一个字符串,进行返回
public static String solution(String str) {
String str2="";
String str3="";
int m=0,n=0;
//str2:分类后的数字串,str3:分类后的字符串
for(int i=0;i<str.length();i++) {
if(str.charAt(i)>='0'&&str.charAt(i)<='9') {
str2+=str.charAt(i);
}
if(str.charAt(i)>='a'&&str.charAt(i)<='z') {
str3+=str.charAt(i);
}
}
//对数字串进行排序
String res2=sortNums(str2);
//方法二:
/* char[] ic=str2.toCharArray();
Arrays.sort(ic);
StringBuffer sb3=new StringBuffer();
for(char temp2:ic) {
sb3.append(temp2);
}
String res3=sb3.toString();
System.out.println("测试数字串排序:"+res3);*/
//对字母串进行排序
char[] ca=str3.toCharArray();
Arrays.sort(ca);
StringBuffer sb=new StringBuffer();
for(char temp:ca) {
sb.append(temp);
}
String res1=sb.toString();
return res1+res2;
}
private static String sortNums(String str2) {
int[] result=new int[str2.length()];
for(int i=0;i<result.length;i++) {
result[i]=Integer.parseInt(String.valueOf(str2.charAt(i)));
}
Arrays.sort(result);
StringBuffer sb2=new StringBuffer();
for(int temp:result) {
sb2=sb2.append(temp);
}
return result.toString();
}
}
例题二: 给定一个英文字母组成的字符串,对于字符串中字母,如果前面已经出现过(字母不区分大小写),则需要将其删除,输出删除后的字符串
例如:aBcAbCdef 输出:aBcdef
思路:用arrayList存储首次出现的字符,注意大小写问题
算法实现:
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.nextLine();
String result = solution(str);
System.out.println(result);
}
public static String solution(String str) {
List<Character> list = new ArrayList<>();
String result = "";
String up = str.toUpperCase();
String lower = str.toLowerCase();
for (int i = 0; i < str.length(); i++) {
// 大小写问题
if (!(list.contains(up.charAt(i)) || list.contains(lower.charAt(i)))) {
list.add(str.charAt(i));
}
}
//链表转换成字符串,并进行拼接
StringBuilder sb = new StringBuilder();
for (int j = 0; j < list.size(); j++) {
sb.append(list.get(j));
}
result = sb.toString();
return result;
}
}
相关连接:
List转化成String的三种方式: