Java如何统计反转后二进制字符串开头的前导零个数
实现统计反转二进制字符串前缀0数量的方案
实现逻辑
- 从反转后的二进制字符串首字符开始遍历,逐位判断是否为
'0' - 每匹配到一个前缀
'0'就给计数器加1,遇到第一个'1'就终止遍历 - 特殊边界场景:如果输入值为0,反转后的二进制字符串只有
'0',可根据需求自行调整返回规则
修改后的完整代码
import java.util.*; class Main { public static void main(String[] args) { int woord = 20; String bin = Integer.toBinaryString(woord); String test = new StringBuilder(bin).reverse().toString(); System.out.println("反转后的二进制字符串:" + test); // 统计前缀0数量的逻辑 int leadingZeroCount = 0; for (int i = 0; i < test.length(); i++) { if (test.charAt(i) == '0') { leadingZeroCount++; } else { break; } } // 可选:处理输入为0的场景,此时整个字符串都是0,根据需求调整 if (leadingZeroCount == test.length()) { // 比如输入是0的情况,可设置leadingZeroCount为0或者保持原值 leadingZeroCount = 0; } System.out.println("开头第一个1之前的0的数量:" + leadingZeroCount); } }
运行示例
当输入值为20时,转换得到的原始二进制为10100,反转后为00101,最终统计得到前缀0数量为2,符合需求。
内容的提问来源于stack exchange,提问作者Lucas Winkel
相关产品推荐
相关产品推荐

