代码如下:
import java.util.*;
public class GetOrderedStr {
public static void main(String[] args) {
String testStr="aaddccdc";
String orderedStr = getOrderedStr(testStr);
System.out.println(orderedStr);
}
public static String getOrderedStr(String srcStr){
if (srcStr==null || srcStr.trim().length()==0){
System.out.println("输入的字符串为空!");
return null;
}
int length = srcStr.length();
if (length>1000){
System.out.println("输入的字符串长度超过1000!");
return null;
}
//{a=2, c=2, d=3, f=3, m=9}
HashMap characterCntHashMap = new HashMap<>();
for (int i = 0; i < length; i++) {
char charTemp = srcStr.charAt(i);
if (characterCntHashMap.containsKey(charTemp)){
characterCntHashMap.put(charTemp,characterCntHashMap.get(charTemp)+1);
}else {
characterCntHashMap.put(charTemp,1);
}
}
System.out.println(characterCntHashMap);
//4a3c2d3m
TreeSet treeSet = new TreeSet<>();
for (Map.Entry entry : characterCntHashMap.entrySet()){
Character charKey = entry.getKey();
Integer charCnt = entry.getValue();
//2d3c3m4a
String cntKeyStr = String.valueOf(charCnt);
cntKeyStr+=charKey;
treeSet.add(cntKeyStr);
}
System.out.println(treeSet);
StringBuilder stringBuilder = new StringBuilder();
for (String s : treeSet) {
stringBuilder.append(s);
}
String treeSetStr = stringBuilder.toString();
System.out.println(treeSetStr);
int length1 = treeSetStr.length();
HashMap stringIntegerHashMap = new HashMap<>();
LinkedHashSet linkedHashSet = new LinkedHashSet<>();
for (int i = length1-1; i >= 0; i--) {
char tempChar = treeSetStr.charAt(i);
if (Character.isDigit(tempChar)){
if (stringIntegerHashMap.containsKey(tempChar)){
stringIntegerHashMap.put(tempChar,stringIntegerHashMap.get(tempChar)+1);
}else {
stringIntegerHashMap.put(tempChar,1);
}
continue;
}
linkedHashSet.add(tempChar);
}
for (Map.Entry entry : stringIntegerHashMap.entrySet()){
Character charKey = entry.getKey();
Integer integerValue = entry.getValue();
if (integerValue>1){
}
}
System.out.println(linkedHashSet);
StringBuilder stringBuilder1 = new StringBuilder();
for (Character character : linkedHashSet) {
stringBuilder1.append(character);
}
return stringBuilder1.toString();
}
}



