我被要求用三种方法创建代码。该程序应该为每种转换方法都提供一个方法,分别用于decimalToBinary,decimalToOctal和decimalToHexadecimal,然后将结果显示在包含四列的表中:使用printf进行十进制,二进制,八进制和十六进制
我能够创建代码进行转换,但是我很难弄清楚如何将代码打印到列中。我做了研究,我知道如何使用printf,但是我很困惑,因为每次输出的长度都会不同。如何使它们平均显示?这是我的代码。
import java.util.Scanner;
public class Convert {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Please enter your decimal number");
int decimal = input.nextInt();
System.out.printf("Decimal: %d\n", decimal);
String binary=decimalToBinary(decimal);
System.out.printf("Binary: %s\n", binary);
String octa=decimalToOctal(decimal);
System.out.printf("Octal: %s\n", octa);
String hexa=decimalToOctal(decimal);
System.out.printf("Hexa:%s\n", hexa);
}
public static String decimalToBinary(int decimal) {
int remainder;
String answer="";
while (decimal>0) {
remainder=decimal%2;
decimal=decimal/2;
answer=remainder+answer;
}
return answer;
}
public static String decimalToOctal(int decimal) {
int remainder;
String answer="";
while (decimal>0) {
remainder=decimal%8;
decimal=decimal/8;
answer=remainder+answer;
}
return answer;
}
public static String decimalToHexadecimal(int decimal) {
int remainder;
String answer="";
while (decimal>0) {
remainder=decimal%16;
decimal=decimal/16;
if (remainder==10)
answer= "A" + answer;
else if (remainder==11)
answer= "B" + answer;
else if (remainder==12)
answer= "C" + answer;
else if (remainder==13)
answer= "D" + answer;
else if (remainder==14)
answer= "E" + answer;
else if (remainder==15)
answer= "F" + answer;
else answer=remainder+answer;
}
return answer;
}
}
答案 0 :(得分:0)
看看printf() documentation,尤其是format string syntax。您在宽度说明符之后。例如,
printf("%20s", s);
将确保您的输出宽度为20个字符。您可以尝试各种变体,以实现所需的功能。