In: Computer Science
Working with Strings
The following program illustrates the use of some of the methods in the String class. Study the program to see what it is doing.
// *************************************************************** // StringManips.java // Test several methods for manipulating String objects // *************************************************************** import java.util.Scanner; public class StringManips { public static void main (String[] args) { String phrase = new String ("This is a String test."); int phraseLength; // number of characters in the phrase String int middleIndex; // index of the middle character in the String String firstHalf; // first half of the phrase String String secondHalf; // second half of the phrase String // compute the length and middle index of the phrase phraseLength = phrase.length(); middleIndex = phraseLength / 2; // get the substring for each half of the phrase firstHalf = phrase.substring(0,middleIndex); secondHalf = phrase.substring(middleIndex, phraseLength); // concatenate the firstHalf at the end of the secondHalf switchedPhrase = secondHalf.concat(firstHalf); //print information about the phrase System.out.println(); System.out.println ("Original phrase: " + phrase); System.out.println ("Length of the phrase: " + phraseLength + " characters"); System.out.println ("Index of the middle: " + middleIndex); System.out.println ("Character at the middle index: " + phrase.charAt(middleIndex)); System.out.println(); } }
The file StringManips.java contains this program. Save the file to your directory and compile and run it. Study the output and make sure you understand the relationship between the code and what is printed. Now modify the file as follows:
Declare a variable of type String named middle3 (put your declaration with the other declarations near the top of the program) and use an assignment statement and the substring method to assign middle3 the substring consisting of the middle three characters of phrase (the character at the middle index together with the character to the left of that and the one to the right - use variables, not the literal indices for this particular string).
Add a println statement to print out the result.
Save, compile, and run to test what you have done.
Declare two new variables city and state of type String. Add statements to the program to prompt the user to enter their hometown—the city and the state.
Read in the results using the appropriate Scanner class method - you will need to have the user enter city and state on separate lines.
Then using String class methods create and print a new string that consists of the state name (all in uppercase letters) followed by the city name (all in lowercase letters) followed again by the state name (uppercase).
So, if the user enters Lilesville for the city and North Carolina for the state, the program should create and print the string
NORTH CAROLINAlilesvilleNORTH CAROLINA
Add comment lines after each variable declaration, indicating what each variable represents.
Add comment lines for each section of the program, indicating what is done in that section.
Sample run:
Original phrase: This is a String test. Length of the phrase: 22 characters Index of the middle: 11 Character at the middle index: t Middle 3 characters: Str Enter your hometown city: Lilesville Enter your hometown state: North Carolina NORTH CAROLINA lilesville NORTH CAROLINA
import java.util.Scanner;
public class StringManips {
/**
* @param args the command line
arguments
*/
public static void main(String[] args) {
// TODO code application
logic here
String phrase =
new String ("This is a String test.");
int phraseLength; // number of
characters in the phrase String
int middleIndex; // index of the
middle character in the String
String firstHalf; // first half of
the phrase String
String secondHalf; // second half of
the phrase String
String middle3; // middle three of
the phrase string
String middle3_left,middle3_right;
// left and right of middle value
String city,state;
//Scanner class to read the value
from user
Scanner read=new
Scanner(System.in);
// compute the length and middle
index of the phrase
phraseLength =
phrase.length();
middleIndex = phraseLength /
2;
// get the substring for each half
of the phrase
firstHalf =
phrase.substring(0,middleIndex);
secondHalf =
phrase.substring(middleIndex, phraseLength);
// concatenate the firstHalf at the
end of the secondHalf
String switchedPhrase =
secondHalf.concat(firstHalf);
middle3_left = ""+
phrase.charAt(middleIndex-1);
middle3_right = ""+
phrase.charAt(middleIndex+1);
//print information about the
phrase
System.out.println();
System.out.println ("Original
phrase: " + phrase);
System.out.println ("Length of the
phrase: " + phraseLength + " characters");
System.out.println ("Index of the
middle: " + middleIndex);
System.out.println ("Character at
the middle index: " +
phrase.charAt(middleIndex));
System.out.println("Middle3
Characters: "+middle3_left+
phrase.charAt(middleIndex)+middle3_right);
System.out.print("Enter your
hometown city: ");
city = read.nextLine(); // reading
the name of city from user
System.out.print("Enter your
hometown state:");
state = read.nextLine(); // reading
the name of state from user
String
state_allInCaps=state.toUpperCase(); // changing state all in caps
letter
System.out.println(state_allInCaps+"
"+city+" "+state_allInCaps); // concatnating the city and
state
System.out.println();
}
}
output screen: