Java 更改输入以便in可以接受任意长度的字符串,这会导致输出出现问题

Java 更改输入以便in可以接受任意长度的字符串,这会导致输出出现问题,java,methods,Java,Methods,目前,我有一个方法,要求用户输入字符串,但只输出前16个字符!该方法假定接收任意长度的字符串,然后在执行以下操作后输出4x4块中的字符:第一行保持不变。将第二排位置向左移动一个位置,然后将第三排位置向左移动两个位置。最后,将第四排的三个位置向左移动。到目前为止,它将只输出第一个4x4块 此外,我不确定如何更改该方法,使其不需要用户输入 我希望它使用如下给定字符串: String text=shiftRows(“wvogjtxqhuhxicwyymghtrkqhqpwkyvglpyspwgofop

目前,我有一个方法,要求用户输入字符串,但只输出前16个字符!该方法假定接收任意长度的字符串,然后在执行以下操作后输出4x4块中的字符:第一行保持不变。将第二排位置向左移动一个位置,然后将第三排位置向左移动两个位置。最后,将第四排的三个位置向左移动。到目前为止,它将只输出第一个4x4块

此外,我不确定如何更改该方法,使其不需要用户输入 我希望它使用如下给定字符串:

String text=shiftRows(“wvogjtxqhuhxicwyymghtrkqhqpwkyvglpyspwgofopmo”)

“WVOGJTXQHUHXICWYMghtRKQHQPWKYVGLPYSPWGOINTOPMO”是我想要使用的给定加密字符串。但不要求用户输入..我不断得到错误和不正确的输出..请说明我可以如何修复此问题

我使用的代码:

public class shiftRows {
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
    String[] input= new String[4];

    String[] output= new String[4];

    System.out.println("Enter a String");
    String inputStr = sc.next();


    for (int i = 0, n = 0; i < 4; i++, n+=4) {
        input[i] = inputStr.substring(0+n, 4+n);
    }
    // -

    output[0] = input[0];
    for(int i=1; i<4; i++)
    {
        output[i] = Shift(input[i],i);
    }

    for(int i=0; i<4; i++)
    {
        System.out.println(output[i]);
    }

}

public static String Shift(String str, int shiftNum)
{
    char[] out = new char[4];
    if(shiftNum==1)
    {
        out[0]=str.charAt(1);
        out[1]=str.charAt(2);
        out[2]=str.charAt(3);
        out[3]=str.charAt(0);
    }
    if(shiftNum==2)
    {
        out[0]=str.charAt(2);
        out[1]=str.charAt(3);
        out[2]=str.charAt(0);
        out[3]=str.charAt(1);
    }
    if(shiftNum==3)
    {
        out[0]=str.charAt(3);
        out[1]=str.charAt(0);
        out[2]=str.charAt(1);
        out[3]=str.charAt(2);
    }
    return new String(out);
}
}
公共类shiftRows{
公共静态void main(字符串[]args)
{
扫描仪sc=新的扫描仪(System.in);
字符串[]输入=新字符串[4];
字符串[]输出=新字符串[4];
System.out.println(“输入字符串”);
字符串inputStr=sc.next();
对于(int i=0,n=0;i<4;i++,n+=4){
input[i]=inputStr.substring(0+n,4+n);
}
// -
输出[0]=输入[0];

对于(inti=1;i,这里有一个很好的方法:

import java.util.Scanner;

public class shiftRows {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String inputStr = "WVOGJTXQHUHXICWYYMGHTRKQHQPWKYVGLPYSPWGOINTOFOPMO";

        for (int i = 0 ; i < inputStr.length() ; i++){
            System.out.print(inputStr.charAt(i));
            if ((i + 1)%4 == 0) System.out.println();
        }
    }
}
import java.util.Scanner;
公共类移位{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
字符串inputStr=“wvogjtxqhuhxicwyymghtrkqhqpwkyvglpyspwgofopmo”;
对于(int i=0;i

如果您想将其存储到
字符串中
,只需在每个循环处串联,并在每次If测试有效时添加一个
“\n”

向左移动是什么意思?您想要这种类型的输出测试吗。