package com.javarush.test.level30.lesson02.task01;

/* Осваиваем методы класса Integer
Используя метод Integer.parseInt(String, int) реализуйте логику метода convertToDecimalSystem,
который должен переводить переданную строку в десятичное число и возвращать его в виде строки.
*/
public class Solution {

    public static void main(String[] args) {
        System.out.println(convertToDecimalSystem("0x16")); //22
        System.out.println(convertToDecimalSystem("012"));  //10
        System.out.println(convertToDecimalSystem("0b10")); //2
        System.out.println(convertToDecimalSystem("62"));   //62
    }

    public static String convertToDecimalSystem(String s) {
        int radix = 0;
        StringBuilder builder = new StringBuilder();
        char[] chars = s.toCharArray();
        if (chars[0] == '0' && chars[1] == 'x') {
            for (int i = 2; i < chars.length; i++) {
                builder.append(chars[i]);
            }
            radix = 16;
        } else if (chars[1] == 'b') {
            for (int i = 2; i < chars.length; i++) {
                builder.append(chars[i]);
            }
            radix = 2;
        } else if (chars[0] == '0') {
            for (int i = 1; i < chars.length; i++) {
                builder.append(chars[i]);
            }
            radix = 8;
        } else return s;
        s = String.valueOf(Integer.parseInt(builder.toString(), radix));
        return s;
    }
}