gpt4 book ai didi

java - 如何在数组中使用 ASCII

转载 作者:行者123 更新时间:2023-11-30 03:10:39 26 4
gpt4 key购买 nike

我想编写一个程序,它接受一个字符串文本,计算每个英文字母的出现次数并将它们存储在一个数组中。然后打印结果,如下所示:

java test abaacc
a:***
b:*
c:**

* - 字母出现的次数。

public static void main (String[] args)  {
String input = args[0];
char [] letters = input.toCharArray();
System.out.println((char)97);
String a = "a:";
for (int i=0; i<letters.length; i++) {
int temp = letters[i];
i = i+97;
if (temp == (char)i) {
temp = temp + "*";
}
i = i - 97;
}
System.out.println(temp);
}

最佳答案

编写(char)97会降低代码的可读性。使用'a'

正如 3kings 在评论中所说,您需要一个包含 26 个计数器的数组,每个计数器对应英文字母表中的一个字母。

您的代码还应该处理大写和小写字母。

private static void printLetterCounts(String text) {
int[] letterCount = new int[26];
for (char c : text.toCharArray())
if (c >= 'a' && c <= 'z')
letterCount[c - 'a']++;
else if (c >= 'A' && c <= 'Z')
letterCount[c - 'A']++;
for (int i = 0; i < 26; i++)
if (letterCount[i] > 0) {
char[] stars = new char[letterCount[i]];
Arrays.fill(stars, '*');
System.out.println((char)('a' + i) + ":" + new String(stars));
}
}

测试

printLetterCounts("abaacc");
System.out.println();
printLetterCounts("This is a test of the letter counting logic");

输出

a:***
b:*
c:**

a:*
c:**
e:****
f:*
g:**
h:**
i:****
l:**
n:**
o:***
r:*
s:***
t:*******
u:*

关于java - 如何在数组中使用 ASCII,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33702393/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com