这是我的代码,我使用的是lang类。但我想编写一个不包含lang类的类似程序。请帮帮我。
import java.lang.*;
import java.io.*;
public class DecimalToBinary {
public static void main(String[] args) throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter a Binary number");
String str=br.readLine();
long num=Long.parseLong(str);
long rem;
while(num>0){
rem=num%10;
num=num/10;
if(rem!=0&&rem!=1){
System.out.println("This is not a binary number,Please enter again");
}
}
int i=Integer.parseInt(str,2);
System.out.println("Decimal:"+i);
}
}
如何在不使用lang类的情况下进行相同的转换? 请帮帮我!!
答案 0 :(得分:1)
考虑这个问题的一种方法是将问题分成两部分。
P.S。您添加到问题中的“class”标记是指Java / C#“类”,而不是学校作业。我认为“家庭作业”是正确的标签。
答案 1 :(得分:0)
您无需导入java.lang。*
以下是编辑后的代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class DecimalToBinary {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter a Binary number");
String str = br.readLine();
long num = Long.parseLong(str);
long rem;
while (num > 0) {
rem = num % 10;
num = num / 10;
if (rem != 0 && rem != 1) {
System.out.println("This is not a binary number,Please enter again");
}
}
int i = Integer.parseInt(str, 2);
System.out.println("Decimal:" + i);
}
}
答案 2 :(得分:0)
我建议你浏览从索引N-1到0的输入字符并检查当前字符是否有效,如果没有则通过抛出异常来停止。我这是有效的,你计算像" 2 pow(二进制数字的当前位置,例如(N-1-i))"并将其添加到您的结果中。由于这可能是一项功课,我只能给你这些不完整的提示。你应该考虑一下,其余的解决方案取决于你。