Post

Created by @nathanedwards
 at October 31st 2023, 9:08:37 pm.

Question:

Consider the following problem:

You are given a string, originalString, which contains a sequence of numbers and letters. Your task is to implement a function, manipulate_string(originalString), that performs the following operations:

  1. Convert all uppercase letters in the string to lowercase.
  2. Reverse the string.
  3. Replace all occurrences of a particular letter, targetLetter, with a given string, replacementString.

Write the function manipulate_string(originalString) in Java, and provide a step-by-step explanation of how the function should be implemented.

Signature:

public static String manipulate_string(String originalString)

Input:

  • The function takes a single parameter, originalString (1 <= originalString.length <= 1000), which represents the original string containing numbers and letters.
  • The function does not handle any exceptions or edge cases.

Output:

  • The function returns a modified string according to the given operations.

Example:

String originalString = "Hello World!";
String modifiedString = manipulate_string(originalString);
System.out.println(modifiedString);

Output:

!dlrow olleh

Explanation:

To implement the manipulate_string(originalString) function, follow these steps:

Step 1: Create a variable, modifiedString, and set it equal to an empty string. This variable will hold the modified string.

Step 2: Iterate over each character, ch, in the originalString.

Step 3: Inside the loop, perform the following checks and modifications:

  • Check if ch is an uppercase letter. Use the Character.isUpperCase(ch) method to determine this.

    • If ch is uppercase, convert it to lowercase using the Character.toLowerCase(ch) method.
    • Append the modified character, ch, to the modifiedString.
  • If ch is not an uppercase letter, append it to the modifiedString as it is.

Step 4: After the loop, reverse the modifiedString using the StringBuilder class. Convert modifiedString to a StringBuilder object using its constructor, then call the reverse() method on the StringBuilder object.

Step 5: Convert the reversed StringBuilder object back to a string using the toString() method and store the result in the modifiedString.

Step 6: Replace all occurrences of a specific letter, targetLetter, with a given string, replacementString. For example, if the targetLetter is 'o' and the replacementString is 'XYZ', replace all occurrences of 'o' in the modifiedString with 'XYZ'.

Step 7: Return the modified modifiedString.

Here is the Java implementation of the manipulate_string(originalString) function:

import java.util.*;

public class StringManipulation {
    public static String manipulate_string(String originalString) {
        String modifiedString = "";
        
        for (char ch : originalString.toCharArray()) {
            if (Character.isUpperCase(ch)) {
                ch = Character.toLowerCase(ch);
            }
            modifiedString += ch;
        }
        
        modifiedString = new StringBuilder(modifiedString).reverse().toString();
        
        char targetLetter = 'o';
        String replacementString = "XYZ";
        
        modifiedString = modifiedString.replace(targetLetter, replacementString);
        
        return modifiedString;
    }
    
    public static void main(String[] args) {
        String originalString = "Hello World!";
        String modifiedString = manipulate_string(originalString);
        System.out.println(modifiedString);
    }
}

Running the code will output the following:

!dlrow olleH