My program is complete and working, but I would like second opinions on it.
Here are the instructions for the assignment:
The program will accept a string as input in which all of the words are run together, but the first character of each word is uppercase. Convert the string to a string in which the words are separated by spaces and only the first word starts with an uppercase letter. For example, the string "StopAndSmellTheRoses" would be converted to "Stop and smell the roses".
Then the program will convert each word in the result string of task 1 into "Pig Latin". In one version of Pig Latin, you convert a word by removing the first letter, placing that letter at the end of the word, and then appending "ay" to the word.
For example, for the result string "Stop and smell the roses" in task 1, the Pig Latin string should be "topSay ndaay mellsay hetay osesray".
Requirements:
- Your program should have 3 methods: a main method, a method for task 1, and a method for task2.
- The method for task 1 should return the result string of task1.
- The method for task 2 should display the Pig Latin string.
import java.util.Scanner;
public class Assignment9
{
public static void main(String[] args)
{
// Variables
String sentence, revisedSentence, latin = " ";
// Create a Scanner object for keyboard input
Scanner keyboard = new Scanner(System.in);
// Get the input string
System.out.print("Enter sentence: ");
sentence = keyboard.nextLine();
//Close keyboard
keyboard.close();
// Task 1
revisedSentence = WordSeparator(sentence);
System.out.print("Revised Sentence: " +revisedSentence);
// Task 2
PigLatin(revisedSentence, latin);
System.exit(0);
}
private static String WordSeparator(String sentence)
{
// Variables
StringBuilder str = new StringBuilder(sentence);
int i = 1;
// While loop repeats until the end of the sentence
while (i < str.length())
{
// Checks for upper case characters
if(Character.isUpperCase(str.charAt(i)))
{
//Inserting space
str.insert(i, ' ');
char ch = Character.toLowerCase(str.charAt(i+1));
str.setCharAt((i+1), ch);
}
i++;
}
return str.toString();
}
private static void PigLatin(String revisedSentence, String latin)
{
// Split sentence by spaces
String[] tokens = revisedSentence.split(" ");
// Store all the words into an array
String[] arr = new String[tokens.length];
// Convert English sentence into Pig Latin
for (int i = 0; i < tokens.length; i++)
{
// Get string from array
String str = tokens[i];
// Get first letter from string
String str1 = str.substring(0, 1);
// Get substring from string
String str2 = str.substring(1, str.length());
// Concatenate the two strings in a required format
str2 = str2.concat(str1);
// Concatenate the result and "AY"
str2 = str2.concat("ay");
// Store all of the strings into an array
arr[i] = str2;
// Make a sentence with all the words
latin = latin.concat(str2 + " ");
}
// Display pig latin verison
System.out.println("\nPig Latin Version:" +latin );
}
}