T是测试用例的数量。N是数组的大小,k是数组右旋转的数量。在java中如何做到这一点

T是测试用例的数量。N是数组的大小,k是数组右旋转的数量。在java中如何做到这一点,java,arrays,arraylist,rotation,Java,Arrays,Arraylist,Rotation,我已使用扫描仪进行阵列输入。但现在出现错误: 执行失败。 java.util.NoSuchElementException 堆栈跟踪: 线程“main”java.util.NoSuchElementException中出现异常 输入: 输出 4 5 1 2 3 我的代码是: class TestClass { public static void main(String args[] ) throws Exception { Scanner sc=new Scanner(System

我已使用扫描仪进行阵列输入。但现在出现错误: 执行失败。 java.util.NoSuchElementException

堆栈跟踪: 线程“main”java.util.NoSuchElementException中出现异常 输入:

输出

4 5 1 2 3
我的代码是:

class TestClass {
public static void main(String args[] ) throws Exception {

    Scanner sc=new Scanner(System.in);
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    int T=Integer.parseInt(br.readLine());
    int i,j;
    for(i=0;i<T;i++) {
        String[] str=br.readLine().split(" ");
        int N=Integer.parseInt(str[0]);
        int K=Integer.parseInt(str[1]);
        int[] arr=new int[N];
        for(j=0;j<N;j++) {
            arr[j]=sc.nextInt();
        }
        int counter=0;

        if(counter!=K){
            int last=arr[N-1];
            for(j=N-1;j>0;j--){
                arr[j]=arr[j-1];
            }
            arr[0]=last;
            counter++;
        }
        else{
            System.out.println();
            for(j=0;j<N;j++){
                System.out.print(arr[j]);
            }
        }
   }

}
class测试类{
公共静态void main(字符串args[])引发异常{
扫描仪sc=新的扫描仪(System.in);
BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in));
int T=Integer.parseInt(br.readLine());
int i,j;
对于(i=0;i
br.readLine()
一次读取一行。如果该行包含“1 2 3 4 5”,它将抛出您得到的异常。您需要将此字符串拆分为一个数组,该数组包含一个数字作为字符串作为其元素,然后对每个元素应用
parseInt()

List<Integer> data = Arrays.stream(br.readLine().split(" "))
   .map(str -> Integer.parseInt(str)
   .collect(COllectors.toList())
List data=Arrays.stream(br.readLine().split(“”)
.map(str->Integer.parseInt(str)
.collect(收集器.toList())

现在您可以处理这些元素了。

“1 2 3 4 5”不是一个数字,而是一个
字符串
感谢您的回复Prashant。但当我使用扫描仪进行输入时,它给出了错误NoSuchElementException.int[]arr=new int[N];例如(j=0;jp请更新问题。这样,每个人都可以看到更改,并且可能会帮助您。不要在注释中添加代码。我没有收到任何异常。只是代码没有在控制台上打印任何内容。您需要检查您的算法。
List<Integer> data = Arrays.stream(br.readLine().split(" "))
   .map(str -> Integer.parseInt(str)
   .collect(COllectors.toList())
List<Integer> data = Arrays.stream(br.readLine().split(" "))
   .map(str -> Integer.parseInt(str)
   .collect(COllectors.toList())