java 求字符串中不同字母的数量
时间: 2023-08-10 14:03:23 浏览: 79
可以使用 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中,你可以使用`Character`类的一些静态方法来计算字符串中大写字母(`Character.isUpperCase(char)`)和小写字母(`Character.isLowerCase(char)`)的数量。以下是简单的步骤:
1. 定义两个变量分别用于存储大写字母和小写字母的数量,初始值都为0。
2. 使用`for`循环遍历字符串的每一个字符。
3. 对于每个字符,检查它是否是大写字母或小写字母,如果是,则相应地增加计数器。
4. 遍历结束后,返回这两个计数器的值。
下面是一个示例代码片段:
```java
public int countUpperCaseLowerCase(String str) {
int upperCount = 0;
int lowerCount = 0;
for (char c : str.toCharArray()) {
if (Character.isUpperCase(c)) {
upperCount++;
} else if (Character.isLowerCase(c)) {
lowerCount++;
}
}
return new Pair(upperCount, lowerCount);
}
```
这里假设你有一个名为`Pair`的类来表示一对整数值(大写和小写的计数)。这个函数会返回一个包含大写字母和小写字母数量的`Pair`对象。
阅读全文