例題一:輸入 一串字符,包含數字[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的三種方式: