//1 有一个字符串 String s = "aabbbc" 求字符串中每个字符的出现次数
//结果 a 2 b 3 c 1
//提高要求
//将结果按照字符的出现次数升序输出
//结果 c a b
//2 提高题 输入一个字符串 通过递归 返回逆序字符串
//比如"abc" 递归方法 返回"cba"
//1 有一个字符串 String s = "aabbbc" 求字符串中每个字符的出现次数
//结果 a 2 b 3 c 1
//提高要求
//将结果按照字符的出现次数升序输出
//结果 c a b
//2 提高题 输入一个字符串 通过递归 返回逆序字符串
//比如"abc" 递归方法 返回"cba"
public static void main(String[] args) {
ArrayList<Character> arrayList = new ArrayList<Character>();
String s="aabbbc";
//将字符串转为字符数组后遍历其元素存储到list集合中
char[] c=s.toCharArray();
for (char c1:c){
arrayList.add(c1);
}
//统计字符出现的次数
//创建一个Map集合,字符作为键,字符出现的次数为值,当遇到相同的键时,值加加
HashMap<Character, Integer> map = new HashMap<>();
for (char c1:arrayList){
//定义i记录字符数
int i;
//判断集合中是否含有该键
if(map.containsKey(c1)){
i=map.get(c1);
i++;
map.put(c1,i);
}else {
//第一次出现的设置键值为1
map.put(c1,1);
}
}
//遍历map集合
Set<Character> characters = map.keySet();
for (char c1:characters){
int i=map.get(c1);
System.out.println(c1+"有"+i+"个");
}
////提高要求
////将结果按照字符的出现次数升序输出
System.out.println("-------------------");
ArrayList<Character> cc = new ArrayList<>();
for (char c1:characters){
cc.add(c1);
}
Collections.reverse(cc);
for (Character character : cc) {
System.out.print(character+",");
}
}
---第二题 :
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String next = scanner.next();
String s = myReverse(next);
System.out.println(s);
}
public static String myReverse(String str){
if (str ==null||str.length() <= 1)
{
return str;
}
return myReverse(str.substring(1))+str.charAt(0);
}