利用Scanner类从键盘读入一行字符串,实现下列功能:a.将字符串中的字符按字母顺序排序后输出;b.统计每个字符出现的次数和位置。
package exercise;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class StringPut {
public void putString(){
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = scan.next();
for (int i = 0; i < str.length(); i++){
System.out.print(str.charAt(i) + " ");
}
System.out.println();
HashMap<Character, Integer> ha = new HashMap<>();
Map<Character, ArrayList<Number>> arr = new HashMap<Character,
ArrayList<Number>>();
for (int i = 0; i < str.length(); i++){
char c = str.charAt(i);
if (!ha.containsKey(c)){
ha.put(c, 1);
ArrayList<Number> li = new ArrayList<>();
li.add(i);
arr.put(c, li);
}else{
ha.put(c, ha.get(c) + 1);
arr.get(c).add(i);
}
}
System.out.println("输出统计次数:");
for (Character c : ha.keySet()) {
System.out.println("letter: " + c +", " + "num: " + ha.get(c));
System.out.println("addresses: "+ arr.get(c));
System.out.println("------------------------------------------");
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
StringPut sp = new StringPut();
sp.putString();
}
}