Hello. I can't get this Java code to work. It takes a series of sentences as a single string. The function capitalizes the first letter of every sentence What am I doing wrong?   /* Programming Challenges Chapter 9 #3 Pg. 608 Title: Sentencee Capitallizer Write a method that accepts a String object as an argument and returns a copy of the string with the first character of each sentence capitalized. For instance, if the argument is “hello. my name is Joe. what is your name?” the method should return the string “Hello. My name is Joe. What is your name?” Demonstrate the method in a program that asks the user to input a string and then passes it to the method. The modified string should be displayed on the screen. */ import javax.swing.JOptionPane; public class SentenceCapitalizer { public static void main(String[] args) { String input; input = JOptionPane.showInputDialog("Enter a string."); JOptionPane.showMessageDialog(null, sentenceCap(input)); System.exit(0); } public static String sentenceCap(String str) { int i; StringBuilder temp = new StringBuilder(str); if(temp.length() > 0) temp.setCharAt(0, Character.toUpperCase(temp.charAt(0))); i = temp.indexOf("."); while(i != -1) { i++; while(i < temp.length() && temp.charAt(i) == ' ') i++; temp.setCharAt(i, Character.toUpperCase(temp.charAt(i))); i = temp.indexOf(".", i); } return temp.toString(); } }

EBK JAVA PROGRAMMING
9th Edition
ISBN:9781337671385
Author:FARRELL
Publisher:FARRELL
Chapter7: Characters, Strings, And The Stringbuilder
Section: Chapter Questions
Problem 12RQ
icon
Related questions
Question
100%

Hello. I can't get this Java code to work. It takes a series of sentences as a single string. The function capitalizes the first letter of every sentence What am I doing wrong?

 

/*
Programming Challenges
Chapter 9 #3 Pg. 608

Title: Sentencee Capitallizer
Write a method that accepts a String object as an argument and returns a copy of the string
with the first character of each sentence capitalized. For instance, if the argument is “hello.
my name is Joe. what is your name?” the method should return the string “Hello. My name
is Joe. What is your name?” Demonstrate the method in a program that asks the user to
input a string and then passes it to the method. The modified string should be displayed on
the screen.
*/


import javax.swing.JOptionPane;

public class SentenceCapitalizer
{
public static void main(String[] args)
{
String input;
input = JOptionPane.showInputDialog("Enter a string.");
JOptionPane.showMessageDialog(null, sentenceCap(input));
System.exit(0);
}

public static String sentenceCap(String str)
{
int i;
StringBuilder temp = new StringBuilder(str);

if(temp.length() > 0)
temp.setCharAt(0, Character.toUpperCase(temp.charAt(0)));
i = temp.indexOf(".");

while(i != -1)
{
i++;
while(i < temp.length() && temp.charAt(i) == ' ')
i++;
temp.setCharAt(i, Character.toUpperCase(temp.charAt(i)));
i = temp.indexOf(".", i);
}
return temp.toString();
}
}

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Methods of StringBuilder class
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
EBK JAVA PROGRAMMING
EBK JAVA PROGRAMMING
Computer Science
ISBN:
9781337671385
Author:
FARRELL
Publisher:
CENGAGE LEARNING - CONSIGNMENT