patternjavaMinor
Word Separator and Pig Latin Program Final Edit
Viewed 0 times
editprogramseparatorwordlatinfinalandpig
Problem
This is an updated version of my previous Java program that asks the user for a sentence and then separates the words and then converts the sentence into Pig Latin. My previous program was working, but there was some tweeking that needed to be done which I did after getting positive feedback. Apparently, my loop in the separateWords function was checking for capital letters twice or so. I have included the instructions for the assignment for reference and the code for peer edit. Thank you.
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:
```
public class Assignment9 {
public static void main(String[] args) {
// Variables
String sentence, revisedSentence;
// 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();
// Call function to perform Task 1
revisedSentence = separateWords(sentence);
System.out.pr
- 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 "StopAndSmellTheRose" 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
```
public class Assignment9 {
public static void main(String[] args) {
// Variables
String sentence, revisedSentence;
// 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();
// Call function to perform Task 1
revisedSentence = separateWords(sentence);
System.out.pr
Solution
Your commenting is absolutely abusive. This one is particularly beautiful... in its own way:
None of these comments are useful, because:
See this beautiful answer specifically about comments - two things to remember:
-
Comments are supposed to make plain what the code does not tell us already.
-
Good code seldom needs comments
The naming is also inconsistent:
A better name for the former could be
Comments should not replace meaningful names:
If
//Close keyboard
keyboard.close();None of these comments are useful, because:
- They state the obvious. Let the code speak for itself!
- They tell the reader what the code is doing, but not why it's doing it.
- They are a distraction. Reader/maintainer reads the comment, and then the code, and then subconsciously validates whether the comment reflects what the code underneath is saying.
See this beautiful answer specifically about comments - two things to remember:
-
Comments are supposed to make plain what the code does not tell us already.
-
Good code seldom needs comments
The naming is also inconsistent:
StringBuilder str = new StringBuilder(sentence);
String str = tokens[i];A better name for the former could be
builder, and a meaningful name for the latter could be token.Comments should not replace meaningful names:
// Get first letter from string
String str1 = str.substring(0, 1);If
str1 were firstLetter...Code Snippets
//Close keyboard
keyboard.close();StringBuilder str = new StringBuilder(sentence);
String str = tokens[i];// Get first letter from string
String str1 = str.substring(0, 1);Context
StackExchange Code Review Q#87816, answer score: 8
Revisions (0)
No revisions yet.