blob: 210e4a9852a22c558ab9a0ad47fe05b31ef5f9d5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
#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()
|