我做了以下练习:
目前我被困在第四步,有人能帮我吗?到目前为止,我有:
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
,它将是你在缩短的String中保留的第一个字符。1
,否则你将处理一个java.lang.StringIndexOutOfBoundsExc0019,因为indexOf()
如果没有匹配,返回-1:
int firstOne = test.indexOf('1');
String shortened;
if(firstOne >=0) //indexOf method returns -1 if no match has been found
shortened = test.substring(firstOne);
else
shortened = test;
因为这是你得到的一个练习,我将在这里停止,如果你需要第五部分的帮助,请随时评论。
首先,你应该使用扫描仪
并提示用户输入一个数字。查找零的计数相当于查找第一个1
(如果没有1
,则查找字符串的长度)。最后,可以使用
Integer。parseInt(String,int)
将二进制String
解析回int
。喜欢
Scanner scan = new Scanner(System.in);
System.out.print("Enter a number: ");
System.out.flush();
int val = scan.nextInt();
String bin = Integer.toBinaryString(val);
String rev = new StringBuilder(bin).reverse().toString();
System.out.println(rev);
int count = rev.indexOf('1');
if (count < 0) {
count = rev.length();
}
System.out.println(count);
System.out.println(Integer.parseInt(rev.substring(count), 2));
这里涵盖的每一点都有一个非常简单的解决方案:
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Enter a number: ");
int inputDecimalNumber = scan.nextInt();
System.out.println("Input number in decimal: "+inputDecimalNumber);
//1. Make a code that converts any number into a binary number
String inputBinary = Integer.toBinaryString(inputDecimalNumber);
System.out.println("Input number in binary : "+inputBinary);
//2. Reverse that binary number and show it on screen
String reverseBinary = new StringBuilder(inputBinary).reverse().toString();
System.out.println("Reverse binary number: "+reverseBinary);
//3. Count (and show on screen) how many zeros there are at the beginning of the binary number
int leadingZeros = reverseBinary.indexOf("1") > 0 ? reverseBinary.indexOf("1") : 0;
System.out.println("Leading zeroes count in reverse binary : "+leadingZeros);
//4. Remove all the zeros at the beginning of that reversed binary number.
String reverseBinaryAfterRemovingLeadingZeros = reverseBinary.substring(reverseBinary.indexOf("1"));
System.out.println("Reverse binary after removing leading zeroes : "+ reverseBinaryAfterRemovingLeadingZeros);
//5. Convert the new binary number back to a regular number and show that number on screen.
int decimalValue=Integer.parseInt(reverseBinaryAfterRemovingLeadingZeros,2);
System.out.println("Reverse binary into decimal number : "+decimalValue);
}
输出
Enter a number: 38
Input number in decimal: 38
Input number in binary : 100110
Reverse binary number: 011001
Leading zeroes count in reverse binary : 1
Reverse binary after removing leading zeroes : 11001
Reverse binary into decimal number : 25
问题内容: 我有一个以许多空格开头的文本字符串,介于2和4之间。 删除前导空格的最简单方法是什么?(即删除某个字符之前的所有内容?) 问题答案: 该方法将删除以字符串开头的前导空格,换行符和制表符: 编辑 正如balpha在注释中指出的那样,为了 仅从 字符串开头删除空格,应使用:
问题内容: 我有一个包含两个字段(国家和ISO代码)的表: 在某些行中,第二个字段在开头和/或结尾处都有空格,这会影响查询。 有没有一种方法(在SQL中)遍历表并查找/替换field2中的空格? 问题答案: 您正在寻找TRIM。
这是我的XML文件 我只想从xml中删除第二个选项 我的java代码从我的选项元素中删除所有选项。使用
问题内容: 我有几个像这样的字母数字字符串 除去 尾随 零的理想输出为: 前导 尾随零的期望输出为: 去除前导零和尾随零的期望输出为: 目前,我已经按照以下方式进行操作,如果有的话,请提出一种更好的方法: 问题答案: 那基本的 删除尾随和前导零?如果您只想删除尾随零,请改用(仅用于前导零)。 [文档中的更多信息。] 您可以使用一些列表推导来获得所需的序列,如下所示:
在seborn lmmap函数中,我们有一个色调参数,它会自动在右侧绘制一个颜色条。如何禁用/删除颜色条? 下面是一个将生成颜色条的示例代码 我试图调用颜色条对象并将其删除。在传统的matplotlib方式中,我们可以使用 但我看不出它对lmplot有什么作用。另一种替代方式是sns。热图函数,其中提供cbar参数 但在lmplot中,没有cbar选项。在lmplot中,最好的方法是什么?
问题内容: 我想知道当用户单击注销时是否可以删除网站的所有cookie,因为我将其用作删除cookie的功能,但无法正常工作: 有没有一种方法可以删除PHP中某个域的Cookie? 问题答案: PHP setcookie() 从该页面获取的信息将取消设置您域的所有cookie: http://www.php.net/manual/zh/function.setcookie.php#73484