summary refs log blame commit diff stats
path: root/java/text/StringOperations.typ
blob: 210e4a9852a22c558ab9a0ad47fe05b31ef5f9d5 (plain) (tree)












































                                                                                                                                                                                  
#import "/template.typ": *
#show: A => apply(A)
#set raw(lang: "java-new")
#set par(leading: 0.55em)

#assignment(3)[
  Write a menu-driven program to create a class with a String member variable and perform basic string operations:
  #box(align(left, [
  - count the number of words,
  - case-insensitively check whether the string is palindrome, and
  - reverse the string.]))
]

#scos("StringOperations")

=== Discussion

#skind[Classes, interfaces and methods used from Java standard library]

- `java.util.Scanner` Class:
  - Method `String nextLine()`: Scan a line of text as a string from the the input stream.
- `java.lang.String` Class:
  - `int length()` method: Returns the length of the string.
  - `char charAt(int)`: Returns the character in the string at the provided position.
  - `char[] toCharArray()`: Returns an array of characters corresponding to the string.
  - `static String copyValueOf(char[])`: Creates a new string from the provided character array.
  
#skind[Classes and methods implemented in the program]

- `MyString` Class:
  Provides the methods implementing the specified operations.
  - `String str` is the underlying string object upon which the operations are to be performed.
  - Constructor `MyString(String)`: Create an object of this class for the provided string.
  - `String valueOf()`: Returns the underlying string object.
  - `int countWords()`: Counts the words in the underlying string manually by  iterating over the characters in the string.
  - `MyString reverse()`: Returns a new object of MyString with the underlying string reversed manually by iterating over characters.
  - `MyString toLowerCase()`: Returns a new object of MyString with its characters manually converted to lower-case.
  - `boolean equals(MyString)`: Check whether the underlying strings are equal by comparing the arrays of characters.
  - `boolean isCaseInsensitivePalindrome()`: Checks whether the underlying string is a palindrome case-insensitively using the `reverse()`, `toLowerCase()` and `equals()` method.
- The `StringOperations` orchestrates the main program with:
  - `static void menu()`: Displays the menu.
  - `public static void main(String[])`: Implements a menu-driven program for the specified string operations.


#signature()