java在我的例子中如何删除前导零?
我做了以下练习:
- 制作一个将任何数字转换成二进制数的代码
- 把那个二进制数倒过来,在屏幕上显示出来
- 计算(并在屏幕上显示)二进制数开头有多少个零
- 删除该反向二进制数开头的所有零李>
- 将新的二进制数转换回常规数,并在屏幕上显示该数字李>
目前我被困在第四步,有人能帮我吗?到目前为止,我有:
import java.util.*;
class Main {
public static void main(String[] args) {
int woord = 100;
String bin = Integer.toBinaryString(woord);
String test = new StringBuilder(bin).reverse().toString();
System.out.println(test);
String[] parsed = test.split("1");
System.out.println(parsed.length > 0 ? parsed[0].length() : "0");
}
}
提前感谢:)
我已经得到了答案,第一个人已经帮了我很多。我还将学习并阅读其他答案。不要觉得有必要发布更多回复(当然,除非你想这么做):)
# 1 楼答案
这里讨论的每一点都可以看到一个非常简单的解决方案:
输出
# 2 楼答案
只需在字符串中循环并检查字符串的第一个字符,直到不再得到任何零
检查这个代码
# 3 楼答案
首先,应该使用} 将二进制文件
Scanner
并提示用户输入一个数字。查找零的计数相当于查找第一个1
(如果没有1
,则查找String
的长度)。最后,可以使用^{String
解析回int
。比如# 4 楼答案
要解决第四步的问题,你需要找出这个数字中需要删除的部分
1
,它将是您将保留在缩短字符串中的第一个字符李>1
,否则您将处理java。lang.StringIndexOutOfBoundsException,因为indexOf()
如果没有匹配,则返回-1:既然这是一个练习,我就到此为止,如果你需要第五部分的帮助,请随意评论
# 5 楼答案
我会用正则表达式:
输出: