蓝桥杯十六进制转八进制疑问(java)

请问此代码哪里出了问题

java
package 基础练习;

import java.util.Scanner;

public class 十六进制转八进制 {

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int x = sc.nextInt();
    for(int i = 0;i<x;i++) {
        String line = sc.next();
        StringBuilder sb = new StringBuilder();
        for(int j=0;j<line.length();j++) {
        //取每一位十六进制转成二进制放在一个容器里
        sb.append(hexToBin(line.substring(j, j+1)));
        }
        String bin =format3(sb.toString());
        //取每一位二进制数转成八进制放在一个容器里
        StringBuilder sb1 = new StringBuilder();
        for(int j = 0;j<line.length();j+=3) {
        sb.append(binToOct(bin.substring(j, j+3)));
        }
         String result = sb1.toString();
         for(int k = 0;k<result.length();k++) {
             result = result.substring(k);
             break;
         }
         System.out.println(result);
     
        }
        
    }    
//十六进制转二进制
public static String hexToBin(String hex) {
    return format4(Integer.toBinaryString(Integer.valueOf(hex,16)));
    
}
//二进制转八进制
public static String binToOct(String bin) {
    return Integer.toOctalString(Integer.valueOf(bin,2)) ;
}
//对二进制转八进制时前面可能少0进行填补
public static String format3(String str) {
    if(str.length()%3==2) {
        str = "0"+str;
        }
    if(str.length()%3==1) {
        str = "00"+str;
    }
    return str;
}
//对十六进制转二进制时可能少0进行填补,比如十六进制1转成二进制还是1,十六进制2转换成二进制会是0010
public static String format4(String str) {
    if(str.length()%4==3) {
        str = "0"+str;
        }
    if(str.length()%4==2) {
        str = "00"+str;
    }
    if(str.length()%4==1) {
        str = "000"+str;
    }
    return str;
}

}
这是报错的原因
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at 基础练习.十六进制转八进制.main(十六进制转八进制.java:9)

int x = sc.nextInt()这里你输入的是0x吗?