**After collecting a number between 1 and 4 from the user, I need to use a Caesar shift cipher to shift every letter in the array forward by the number the user provided. I decided to use if statements for every possible character that could be in the user's String input that would be stored as characters in my 2d array, but I am unsure as to how I write the code that will actually shift each letter. **

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;
   
}}
1

There are 1 best solutions below

0
On

Does this help? It uses a different approach, but it should be adaptable. It uses the ascii value of the char to shift by the desired amount and writes to a new array.

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);
}}