This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Hello this is my first time using a forum for help. I am doing a java program to create a caesar cipher. I am getting an error of (This method must return a result of type String) on the public static string encrypt(String text, String theKey) and another error where (text cannot be resolved to a variable).
This is the instruction: Develop code to encrypt a string given the following encryption key "DEFGHIJKLMNOPQRSTUVWXYZABC". The encryption key is positional, so that the letter A is replaced by D, B is replaced by E, etc. We will ignore case in our substitutions.
To implement Stage 1, you should write a static method named encrypt :
public static String encrypt(String text, String theKey)
This method takes in the string to encrypt (named text) and the key and returns the encrypted string.
If you are confused about how to proceed, then here are some steps you can take:
define a class constant outside the method :
public static final String ALPHABET = "abcdefghijklmnopqrstuvwxyz";
Inside the method, create a new string which is a lower case version of the parameter "text". We will replace the lower case characters with upper case key characters from the key so as to avoid the problem of replacing a character twice.
Create a loop that considers each character of the key (loop 26 times). Inside the loop :
extract the ith character from the key using the string method charAt.
extract the ith character from ALPHABET
call the replace method of the lower case text, changing the ith character of the alphabet to the ith character of the key.
Well the error message says it all. You must return a String value in your method. For example, I added return encryptedString; at the end of your method as shown below. You will, of course, have to modify the code so that it is correct. The code the way you have written it will always return an empty String.