从输入框输入一个字符串,要求输出每个字符在字符串中的位置,例如输入"HelloWorld",输出:H:l e:2 1:3,4,9 o:5,7 W:6 r:8 d:10
时间: 2024-03-07 12:46:51 浏览: 97
好的,这是一个比较有意思的编程问题。以下是Java语言的代码实现:
```java
import java.util.*;
public class CharPosition {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String str = scanner.nextLine();
scanner.close();
Map<Character, List<Integer>> map = new HashMap<>();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (Character.isLetter(c)) {
if (map.containsKey(c)) {
map.get(c).add(i);
} else {
List<Integer> list = new ArrayList<>();
list.add(i);
map.put(c, list);
}
}
}
List<Character> list = new ArrayList<>(map.keySet());
Collections.sort(list);
for (char c : list) {
List<Integer> positions = map.get(c);
System.out.printf("%c:%d", c, positions.get(0));
for (int i = 1; i < positions.size(); i++) {
System.out.printf(",%d", positions.get(i));
}
System.out.println();
}
}
}
```
程序运行时,会提示用户输入一个字符串,然后使用HashMap记录每个字母出现的位置,最后按照字母排序并输出每个字母出现的位置。注意,这里只统计字母的位置,忽略其他字符。
希望这个代码可以帮助到你!
阅读全文