使用DrJava,我如何移动存储在2d数组中的字符,并使用Caesar移位密码存储在不同的位置



**从用户那里收集到一个介于1到4之间的数字后,我需要使用Caesar移位密码来将数组中的每个字母按用户提供的数字向前移位。我决定对用户的字符串输入中的每一个可能的字符使用if语句,这些字符将作为字符存储在我的2d数组中,但我不确定如何编写实际移动每个字母的代码。**

import java.util.Scanner;
public class Csci1301_hw3
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);

int value;
System.out.println("Enter your sentence: ");
String sentence=scan.nextLine();

int lengthofString=sentence.length();

char[][] myArray = new char[lengthofString][3];
for(int counter=0; counter <=sentence.length(); counter++)
myArray[counter][0]= sentence.charAt(counter);

System.out.println("Please enter an integer between 1 and 4 to encrypt your sentence: ");
value=scan.nextInt();

while(value < 1 || value > 4)
{
System.out.println("Please enter an integer between 1 and 4 to encrypt your sentence:  ");
value=scan.nextInt();
}}
public static char caesarCipher(int counter, char[][] myArray, int value)
{ 
if(myArray[counter][0]=='A')
myArray[counter][1]='A'+value;
if(myArray[counter][0]=='B')
myArray[counter][1]='B'+value;
if(myArray[counter][0]=='C')
myArray[counter][1]='C'+value;
if(myArray[counter][0]=='D')
myArray[counter][1]='D'+value;
if(myArray[counter][0]=='E')
myArray[counter][1]='E'+value;
if(myArray[counter][0]=='F')
myArray[counter][1]='F'+value;
if(myArray[counter][0]=='G')
myArray[counter][1]='G'+value;
if(myArray[counter][0]=='H')
myArray[counter][1]='H'+value;
if(myArray[counter][0]=='I')
myArray[counter][1]='I'+value;
if(myArray[counter][0]=='J')
myArray[counter][1]='J'+value;
if(myArray[counter][0]=='K')
myArray[counter][1]='K'+value;
if(myArray[counter][0]=='L')
myArray[counter][1]='L'+value;
if(myArray[counter][0]=='M')
myArray[counter][1]='M'+value;
if(myArray[counter][0]=='N')
myArray[counter][1]='N'+value;
if(myArray[counter][0]=='O')
myArray[counter][1]='O'+value;
if(myArray[counter][0]=='P')
myArray[counter][1]='P'+value;
if(myArray[counter][0]=='Q')
myArray[counter][1]='Q'+value;
if(myArray[counter][0]=='R')
myArray[counter][1]='R'+value;
if(myArray[counter][0]=='S')
myArray[counter][1]='S'+value;
if(myArray[counter][0]=='T')
myArray[counter][1]='T'+value;
if(myArray[counter][0]=='U')
myArray[counter][1]='U'+value;
if(myArray[counter][0]=='V')
myArray[counter][1]='V'+value;
if(myArray[counter][0]=='W')
myArray[counter][1]='W'+value;
if(myArray[counter][0]=='X')
myArray[counter][1]='X'+value;
if(myArray[counter][0]=='Y')
myArray[counter][1]='Y'+value;
if(myArray[counter][0]=='Z')
myArray[counter][1]='Z'+value;
if(myArray[counter][0]=='a')
myArray[counter][1]='a'+value;
if(myArray[counter][0]=='b')
myArray[counter][1]='b'+value;
if(myArray[counter][0]=='c')
myArray[counter][1]='c'+value;
if(myArray[counter][0]=='d')
myArray[counter][1]='d'+value;
if(myArray[counter][0]=='e')
myArray[counter][1]='e'+value;
if(myArray[counter][0]=='f')
myArray[counter][1]='f'+value;
if(myArray[counter][0]=='g')
myArray[counter][1]='g'+value;
if(myArray[counter][0]=='h')
myArray[counter][1]='h'+value;
if(myArray[counter][0]=='i')
myArray[counter][1]='i'+value;
if(myArray[counter][0]=='j')
myArray[counter][1]='j'+value;
if(myArray[counter][0]=='k')
myArray[counter][1]='k'+value;
if(myArray[counter][0]=='l')
myArray[counter][1]='l'+value;
if(myArray[counter][0]=='m')
myArray[counter][1]='m'+value;
if(myArray[counter][0]=='n')
myArray[counter][1]='n'+value;
if(myArray[counter][0]=='o')
myArray[counter][1]='o'+value;
if(myArray[counter][0]=='p')
myArray[counter][1]='p'+value;
if(myArray[counter][0]=='q')
myArray[counter][1]='q'+value;
if(myArray[counter][0]=='r')
myArray[counter][1]='r'+value;
if(myArray[counter][0]=='s')
myArray[counter][1]='s'+value;
if(myArray[counter][0]=='t')
myArray[counter][1]='t'+value;
if(myArray[counter][0]=='u')
myArray[counter][1]='u'+value;
if(myArray[counter][0]=='v')
myArray[counter][1]='v'+value;
if(myArray[counter][0]=='w')
myArray[counter][1]='w'+value;
if(myArray[counter][0]=='x')
myArray[counter][1]='x'+value;
if(myArray[counter][0]=='y')
myArray[counter][1]='y'+value;
if(myArray[counter][0]=='z')
myArray[counter][1]='z'+value;
if(myArray[counter][0]=='0')
myArray[counter][1]='0'+value;
if(myArray[counter][0]=='1')
myArray[counter][1]='1'+value;
if(myArray[counter][0]=='2')
myArray[counter][1]='2'+value;
if(myArray[counter][0]=='3')
myArray[counter][1]='3'+value;
if(myArray[counter][0]=='4')
myArray[counter][1]='4'+value;
if(myArray[counter][0]=='5')
myArray[counter][1]='5'+value;
if(myArray[counter][0]=='6')
myArray[counter][1]='6'+value;
if(myArray[counter][0]=='7')
myArray[counter][1]='7'+value;
if(myArray[counter][0]=='8')
myArray[counter][1]='8'+value;
if(myArray[counter][0]=='9')
myArray[counter][1]='9'+value;
if(myArray[counter][0]==',')
myArray[counter][1]=','+value;
if(myArray[counter][0]=='.')
myArray[counter][1]='.'+value;
if(myArray[counter][0]=='!')
myArray[counter][1]='!'+value;
if(myArray[counter][0]=='?')
myArray[counter][1]='?'+value;

}}

这有帮助吗?它使用了不同的方法,但应该具有适应性。它使用char的ascii值来移动所需的量,并写入一个新数组。

public class Main {
public static void main(String[] args) {
char[] inputString = "This is a test message".toLowerCase().toCharArray();
char[] output = new char[inputString.length];
int index = 0;
int amountToShift = 10;

for (char letter : inputString) {
// don't cipher spaces. You could add other letters if needed.
if (letter == ' ') {
output[index] = ' ';
} else {
int ascii = letter;
ascii = ascii + amountToShift;
// if you need to shift the letter past the end of the alphabet, loop round
if (ascii > 122) {
int tempAscii = (ascii - 97)%26;
ascii = tempAscii + 97;
}
output[index] = (char) ascii;
}
index++;
}
String result = String.valueOf(output);
System.out.println(result);
}}

最新更新