用java写,给出一个字符串统计字母n出现的次数
时间: 2023-11-11 16:05:50 浏览: 43
以下是Java代码实现:
```java
public class CountLetterN {
public static void main(String[] args) {
String str = "New York is a beautiful city";
int count = 0;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == 'n' || str.charAt(i) == 'N') {
count++;
}
}
System.out.println("The letter 'n' appears " + count + " times.");
}
}
```
解释:
1. 定义一个字符串 `str`,并赋值为 "New York is a beautiful city"。
2. 定义一个计数器变量 `count`,初始化为 0。
3. 使用 for 循环遍历字符串的每个字符。
4. 在循环中,判断当前字符是否为字母 n 或 N,如果是,则将计数器加 1。
5. 循环结束后,输出字母 n 出现的次数。
相关问题
统计字符串中字母个数java
可以使用 Java 中的字符数组来统计字符串中字母的个数。具体实现步骤如下:
1. 定义一个字符数组 letters,用于存储每个字母出现的次数。数组大小为 26,对应英文字母表中 26 个字母。
2. 遍历字符串中的每个字符,如果是字母,则将字母转换为小写后,对应的数组元素加 1。
3. 最后遍历整个字符数组 letters,输出每个字母出现的次数。
下面是一个示例代码:
```java
public class CountLetters {
public static void main(String[] args) {
String str = "Hello, world!";
int[] letters = new int[26]; // 初始化字母计数数组
// 统计每个字母出现的次数
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (Character.isLetter(c)) { // 判断是否是字母
int index = Character.toLowerCase(c) - 'a';
letters[index]++;
}
}
// 输出每个字母出现的次数
for (int i = 0; i < 26; i++) {
char c = (char) ('a' + i);
System.out.println(c + ": " + letters[i]);
}
}
}
```
输出结果为:
```
a: 0
b: 0
c: 0
d: 1
e: 1
f: 0
g: 0
h: 1
i: 0
j: 0
k: 0
l: 3
m: 0
n: 0
o: 2
p: 0
q: 0
r: 2
s: 0
t: 0
u: 0
v: 0
w: 1
x: 0
y: 0
z: 0
```
可以看到,字符串中共有 9 个字母,分别是 d、e、h、l、o、r、w,它们分别出现了 1、1、1、3、2、2、1 次。
编写一个java程序,随机生成一个长度为n的字符串,统计该字符串每个字符出现的次数
```
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
public class CountCharacters {
public static void main(String[] args) {
int n = 10; // 字符串长度
String str = generateRandomString(n);
System.out.println("随机生成的字符串:" + str);
Map<Character, Integer> map = countCharacters(str);
System.out.println("每个字符出现的次数:");
for (Map.Entry<Character, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
/**
* 生成一个长度为n的随机字符串
* @param n 字符串长度
* @return 随机字符串
*/
public static String generateRandomString(int n) {
StringBuilder sb = new StringBuilder();
Random random = new Random();
for (int i = 0; i < n; i++) {
char c = (char) ('a' + random.nextInt(26)); // 生成随机小写字母
sb.append(c);
}
return sb.toString();
}
/**
* 统计字符串中每个字符出现的次数
* @param str 统计的字符串
* @return 字符出现次数的Map
*/
public static Map<Character, Integer> countCharacters(String str) {
Map<Character, Integer> map = new HashMap<>();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (map.containsKey(c)) {
map.put(c, map.get(c) + 1); // 字符已经出现过,次数加1
} else {
map.put(c, 1); // 字符第一次出现,次数为1
}
}
return map;
}
}
```