【Java】编程:利用Scanner类从键盘读入一行字符串,实现下列功能:a.将字符串中的字符按字母顺序排序后输出;b.统计每个字符出现的次数和位置。 

it2025-05-15  8

利用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(); } }

最新回复(0)