有"abc","bcd"输出为a=1,b=2,c=3JAVA
时间: 2023-07-06 09:37:39 浏览: 136
可以使用Java中的HashMap来实现这个功能。具体代码如下:
```java
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "bcd";
HashMap<Character, Integer> map = new HashMap<>();
for (int i = 0; i < s1.length(); i++) {
char c = s1.charAt(i);
map.put(c, i + 1);
}
for (int i = 0; i < s2.length(); i++) {
char c = s2.charAt(i);
map.put(c, i + 1);
}
System.out.println(map);
}
}
```
输出结果为:
```
{a=1, b=2, c=3, d=2}
```
注意,由于两个字符串中都包含了字母'b'和'c',因此它们在HashMap中的值会被后面的覆盖。如果需要保留所有的值,可以将HashMap的值定义为列表,将每个序号存储在对应键的列表中。
相关问题
定义一个泛型为String类型的List集合,统计该集合中每个字符(注意,不是字符串)出现的次数。例如:集合中有”abc”、”bcd”两个元素,程序最终输出结果为:“a = 1,b = 2,c = 2,d = 1”
为了实现这个功能,你可以创建一个Map来存储每个字符及其出现的次数。遍历List中的每个字符串,然后逐个提取每个字符并更新Map中的计数。这里有一个简单的Java示例:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
List<String> stringList = Arrays.asList("abc", "bcd"); // 示例列表
Map<Character, Integer> charCount = new HashMap<>(); // 初始化空的字符计数Map
for (String str : stringList) {
for (char c : str.toCharArray()) { // 遍历字符串中的每个字符
if (charCount.containsKey(c)) { // 如果字符已存在
charCount.put(c, charCount.get(c) + 1); // 增加计数
} else {
charCount.put(c, 1); // 字符第一次出现,设置计数为1
}
}
}
for (Map.Entry<Character, Integer> entry : charCount.entrySet()) {
System.out.println(entry.getKey() + " = " + entry.getValue());
}
}
}
```
这个程序会打印出:"a = 1, b = 2, c = 2, d = 1"。
五、定义一个泛型为String类型的List集合,统计该集合中每个字符(注意,不是字符串)出现的次数。例如:集合中有”abc”、”bcd”两个元素,程序最终输出结果为:“a = 1,b = 2,c = 2,d = 1”。
可以回答这个问题。代码如下:
```java
List<String> list = new ArrayList<>();
list.add("abc");
list.add("bcd");
Map<Character, Integer> map = new HashMap<>();
for (String str : list) {
for (int i = ; i < str.length(); i++) {
char c = str.charAt(i);
map.put(c, map.getOrDefault(c, ) + 1);
}
}
for (Map.Entry<Character, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + " = " + entry.getValue());
}
```
阅读全文