[Java] base conversion

其實,這個小小程式設計的源頭都只因為424問了一句 :

Java 做唔做到base互換 (進位換算) ?

如果做唔到,可否base n->base 10 –>base y ?

於是我便動手做了 (>.<) ,如果程式有bug或邏輯問題,歡迎隨時給予意見 !

import java.util.*;
public class Main {
    public static String number,input;
    public static int initialbase,finalbase;
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        try{
        System.out.println("Enter a value :");
        input=scanner.next();
        System.out.println("Enter initial base :");
        initialbase = scanner.nextInt();
        System.out.println("Enter final base :");
        finalbase = scanner.nextInt();
        }catch(InputMismatchException e){
            System.out.println("Invaild value,program exits.");
            System.exit(1);
        }
        converter obj1=new converter();
        number=obj1.convert210(input,initialbase,finalbase);
        System.out.printf("After conversion : %s ", number);
    }
}
class converter{
    String convert210(String x,int base,int finalbase){
        try{
        long y=Long.parseLong(x, base);
        String z = Long.toString(y, finalbase);
        return z;
        }catch(NumberFormatException e){
            System.out.println("Nunber Error occured," +
                    "please check your initial base.");
            return null;
        }
    }
}

1 則留言: