1057 数零壹 java
时间: 2025-05-08 07:06:05 浏览: 27
### 关于数零壹的 Java 实现
对于题目描述中的需求,在处理字符串并计算字母对应的数值总和之后,还需要进一步转换成二进制形式来统计其中 `0` 和 `1` 的数量。下面是一个完整的 Java 解决方案:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
int sum = 0;
for (char c : input.toCharArray()) {
if (Character.isLetter(c)) {
sum += Character.toLowerCase(c) - 'a' + 1;
}
}
// 特殊情况:如果输入中没有任何字母,则直接输出 "0 0"
if (sum == 0) {
System.out.println("0 0");
return;
}
// 将整数转为二进制字符串
String binaryString = Integer.toBinaryString(sum);
int countZero = 0, countOne = 0;
for (char bit : binaryString.toCharArray()) {
if (bit == '0') ++countZero;
else if (bit == '1') ++countOne;
}
System.out.println(countZero + " " + countOne);
}
}
```
此程序首先读取一行作为输入,并遍历该行内的每一个字符。当遇到字母时(无论是大写还是小写),将其转化为对应的小写字母再减去 `'a'-1` 来获得其位置编号[^1]。
接着通过内置方法 `Integer.toBinaryString()` 可以方便地把累加后的整数转变为二进制字符串表示法。最后遍历这个二进制字符串,分别计数 `0` 和 `1` 出现次数后打印出来[^3]。
值得注意的是,按照题目说明,如果没有找到任何有效字母,则应该输出 `"0 0"` 表明既无 `0` 也无 `1` 存在于最终结果之中[^4]。
阅读全文
相关推荐




















