public static void main(String[] args) {
    int b, c;
    String a;
    boolean check = false;

    out.print("Insira um número que não esteja em base decimal: ");
    a = sc.next();

    out.print("\nAgora insira a base em que o número se encontra (entre 2 e 10): ");
    b = sc.nextInt();

    for (int i = 0; i < a.length(); i++) {
      if (Character.getNumericValue(a.charAt(i)) >= b) check = true;
    }

    while (b < 2 || b > 10 || check) {
      out.print("\nEntrada inválida.");
      out.print("\nInsira um número que não esteja em base decimal: ");
      a = sc.next();

      out.print("\nAgora insira a base em que o número se encontra (entre 2 e 10): ");
      b = sc.nextInt();

      for (int i = 0; i < a.length(); i++) {
        if (Character.getNumericValue(a.charAt(i)) >= b) check = true;
        else check = false;
      }
    }
    c = basetoNum(a, b);
    out.print("\nO seu número em base decimal é " + c + ".");
  }
  public static int basetoNum(String a, int b) {
    int c = 0;
    int i = 0;

    for (int j = a.length() - 1; j >= 0; j--) {
      c += ((Character.getNumericValue(a.charAt(j))) * (Math.pow(b, i)));
      i++;
    }

    return c;
  }