summary refs log tree commit diff stats
path: root/java/text/StringOperations.typ
diff options
context:
space:
mode:
Diffstat (limited to 'java/text/StringOperations.typ')
-rw-r--r--java/text/StringOperations.typ45
1 files changed, 45 insertions, 0 deletions
diff --git a/java/text/StringOperations.typ b/java/text/StringOperations.typ
new file mode 100644
index 0000000..210e4a9
--- /dev/null
+++ b/java/text/StringOperations.typ
@@ -0,0 +1,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()