字符串按字符出现次数排序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目:根据输入的字符串(字符)按每个字符出现的次数,按照从小到大重新排列字符串。
package Exercise;
import java.util.ArrayList;
import java.util.Collections;
import parator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
public class TripOne {
public static void main(String[] args) { System.out.println("请输入一行字符串:");
Scanner scan=new Scanner(System.in);
String p=scan.next();
Map map=new HashMap<>();
for (int i = 0; i < p.length(); i++) {
int sum=0;
for (int j = 0; j < p.length(); j++) {
if(p.charAt(i)==p.charAt(j))
{
sum++;
}
}
map.put(p.charAt(i), sum);
}
List <Map.Entry<Character, Integer>>sf=new ArrayList<Map.Entry<Character,
Integer>>(map.entrySet());
Collections.sort(sf, new
Comparator<Map.Entry<Character, Integer>>() {
public int compare(Map.Entry<Character, Integer> o1, Map.Entry<Character, Integer> o2) {
//return (o2.getValue() -
o1.getValue());
if(o1.getValue()>o2.getValue())
return -1;
else if(o1.getValue()<o2.getValue())
return 1;
else
return 0;
}
});
for (int i = 0; i <sf.size(); i++) {
for(int j= 0; j< sf.get(i).getValue(); j++)
{
System.out.print(sf.get(i).getKey());
}
}
}
}。