0
目前我有一个类,移动给定的字符串的输入,以打印输出。该程序工作正常,并具有正确的输出,但我不知道如何解决主要问题,只需要问一个字符串,而不是四个单独的字符串。请出示你将如何解决这个问题把输入作为一个字符串,帮助修复主要,所以它只需要一个输入
输出示例:WVOGJTXQHUHXICWYYMGHTRKQHQPWKYVGLPYSPWGOINTOFOPMO
我唯一的问题是如何主要用于四个独立的输入要求,我会把它想只要求一个字符串,请说明如何
public class shiftRows {
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);
}
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 4 String's :");
for(int i=0;i<4;i++)
{
input[i]=sc.next();
}
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]);
}
}
}
是否允许更改代码的其他部分?如果删除数组,代码的所有部分也必须更改。 – user3437460
我的意思是如果有人知道更好的解决方法。这部分代码这一步与AES加密中的ShiftRows步骤相同。 它按照以下方式循环移动每个块中的行。第一行保持不变。将第二行向左移动一个位置。将第三排两个位置向左移。最后,将第四行 三个位置向左移。 –
请发表您现在给出的输入示例,并输入您想要给予的内容,以实现相同的输出。 – Cinnam