java 求字符串中不同字母的数量
时间: 2023-08-10 11:03:23 浏览: 55
可以使用 HashMap 来实现统计字符串中不同字母的数量。具体实现可以按照以下步骤:
1. 将字符串转换成字符数组。
2. 遍历字符数组,将每个字符作为 key,出现次数作为 value 存放到 HashMap 中。
3. 最后统计 HashMap 的大小即可。
下面是 Java 代码实现:
```java
public static int countDifferentLetters(String str) {
char[] chars = str.toCharArray();
Map<Character, Integer> map = new HashMap<>();
for (char c : chars) {
if (!map.containsKey(c)) {
map.put(c, 1);
} else {
map.put(c, map.get(c) + 1);
}
}
return map.size();
}
```
这个方法的时间复杂度为 O(n),其中 n 是字符串的长度。
相关问题
Java什么方式可以求字符串中不同字母的数量,除了set集合还有什么方式
除了Set集合之外,Java中还可以使用数组的方式来求字符串中不同字母的数量。
具体实现方式如下:
1. 创建一个长度为26的数组,用于存储每个字母出现的次数。
2. 遍历字符串中的每个字符,根据字母的ASCII码值计算出它在数组中对应的下标,将对应下标的元素值加1。
3. 遍历数组,统计值不为0的元素个数,即为字符串中不同字母的数量。
以下是示例代码:
```java
public static int countDistinctLetters(String str) {
int[] letterCount = new int[26];
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c >= 'a' && c <= 'z') {
letterCount[c - 'a']++;
} else if (c >= 'A' && c <= 'Z') {
letterCount[c - 'A']++;
}
}
int count = 0;
for (int i = 0; i < letterCount.length; i++) {
if (letterCount[i] > 0) {
count++;
}
}
return count;
}
```
调用该方法并传入一个字符串,即可返回该字符串中不同字母的数量。
用Java计算字符串中大小写字母和数字的数量
你好,根据你的问题,我可以回答。使用Java计算字符串中大小写字母和数字的数量,可以通过遍历字符串中的每个字符,判断其是否为数字或字母,然后分别统计大小写字母和数字的数量即可。以下是示例代码:
```
public static void countChars(String str) {
int upperCount = 0;
int lowerCount = 0;
int digitCount = 0;
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (Character.isUpperCase(c)) {
upperCount++;
} else if (Character.isLowerCase(c)) {
lowerCount++;
} else if (Character.isDigit(c)) {
digitCount++;
}
}
System.out.println("大写字母数量:" + upperCount);
System.out.println("小写字母数量:" + lowerCount);
System.out.println("数字数量:" + digitCount);
}
```
希望能帮到你!