编写程序,统计给定的电话号码中每个数字出现的频率,然后根据统计结果,把出现频率最高的数字与数字8互换。使用Java语言‘’
时间: 2024-06-08 22:07:55 浏览: 94
VHDL.rar_VHDL数字频率计_数字频率计_脉冲计数_计数 频率计_频率 VHDL
5星 · 资源好评率100%
下面是一个示例代码,可以实现统计电话号码中每个数字出现的频率,并将出现频率最高的数字与数字8互换。这里假设电话号码只包含数字。
```java
import java.util.HashMap;
import java.util.Map;
public class PhoneNumFrequency {
public static void main(String[] args) {
String phoneNum = "13888888888"; // 电话号码
Map<Character, Integer> frequencyMap = new HashMap<>(); // 统计数字出现频率的Map
// 遍历电话号码,统计数字出现频率
for (int i = 0; i < phoneNum.length(); i++) {
char digit = phoneNum.charAt(i);
frequencyMap.put(digit, frequencyMap.getOrDefault(digit, 0) + 1);
}
// 找到出现频率最高的数字
char maxFreqDigit = '0';
int maxFreq = 0;
for (Map.Entry<Character, Integer> entry : frequencyMap.entrySet()) {
char digit = entry.getKey();
int freq = entry.getValue();
if (freq > maxFreq) {
maxFreq = freq;
maxFreqDigit = digit;
}
}
// 将出现频率最高的数字与数字8互换
StringBuilder sb = new StringBuilder(phoneNum);
for (int i = 0; i < sb.length(); i++) {
if (sb.charAt(i) == maxFreqDigit) {
sb.setCharAt(i, '8');
} else if (sb.charAt(i) == '8') {
sb.setCharAt(i, maxFreqDigit);
}
}
// 输出结果
System.out.println("原始电话号码:" + phoneNum);
System.out.println("数字出现频率统计:" + frequencyMap);
System.out.println("出现频率最高的数字:" + maxFreqDigit);
System.out.println("交换后的电话号码:" + sb.toString());
}
}
```
输出结果如下:
```
原始电话号码:13888888888
数字出现频率统计:{1=1, 3=1, 8=9}
出现频率最高的数字:8
交换后的电话号码:13888888888
```
阅读全文