Java查找字符串中出现的最大和最小字符
在此程序中,我们需要计算字符串中存在的每个字符并找出出现的最大和最小字符。
草在另一侧更绿
在上面的示例中,字符" a"在字符串中仅出现一次。因此,它是出现的最少字符,并用红色突出显示。字符e在整个字符串中出现的次数最多,即6次。因此,它是出现次数最多的字符,并用绿色突出显示。
算法
步骤1: START
步骤2: 定义 String str = "grass is greener on the other side"
步骤3: 初始化 minChar, maxChar。
步骤4: 定义 i, j, min, max
步骤5: 将str转换为char[]。
步骤6: SET i =0. REPEAT STEP 7 to STEP 11 UNTIL i
步骤7: 设置array freq[i] =1
步骤8: SET j =i+1. REPEAT STEP 9 to STEP 10 UNTIL j
步骤9: IF (string[i] == string[j] && string[i] != ' ' && string[i] != '0')
then
freq[i] = freq[i] + 1
SET string[j] = 0
步骤10: j = j +1
步骤11: i = i + 1
步骤12: SET min = max = freq [0]
步骤13: SET i = 0。直到i重复步骤14至步骤16
步骤14: IF(min> freq [i] && freq [i]!= 0) 然后
min = freq[i]
minChar[] = string [i]
步骤15: 如果max小于freq[i],则
max = freq[i]
maxChar[] = string[i]
步骤16: i = i +1
步骤17: 打印minChar
步骤18: 打印maxChar
步骤19: END
程序:
public class Characters
{
public static void main(String[] args) {
String str = "grass is greener on the other side";
int[] freq = new int[str.length()];
char minChar = str.charAt(0), maxChar = str.charAt(0);
int i, j, min, max;
//Converts given string into character array
char string[] = str.toCharArray();
//Count each word in given string and store in array freq
for(i = 0; i < string.length; i++) {
freq[i] = 1;
for(j = i+1; j < string.length; j++) {
if(string[i] == string[j] && string[i] != ' ' && string[i] != '0') {
freq[i]++;
//Set string[j] to 0 to avoid printing visited character
string[j] = '0';
}
}
}
//Determine minimum and maximum occurring characters
min = max = freq[0];
for(i = 0; i <freq.length; i++) {
//if min is greater than frequency of a character
//then, store frequency in min and corresponding character in minChar
if(min > freq[i] && freq[i] != '0') {
min = freq[i];
minChar = string[i];
}
//if max is less than frequency of a character
//then, store frequency in max and corresponding character in maxChar
if(max < freq[i]) {
max = freq[i];
maxChar = string[i];
}
}
System.out.println("Minimum occurring character: " + minChar);
System.out.println("Maximum occurring character: " + maxChar);
}
}
输出:
Minimum occurring character: a
Maximum occurring character: e