Great Deal! Get Instant $10 FREE in Account on First Order + 10% Cashback on Every Order Order Now

COP-3337 Programming II Programming Assignment 4 FIU Knight Foundation School of Computing & Information Sciences For this programming assignment, you will implement of a java program that generates a...

1 answer below »

COP-3337 Programming II
Programming Assignment 4
FIU Knight Foundation School of Computing & Information Sciences
For this programming assignment, you will implement of a java program that generates
a random string of a given length and finds different special patterns in the string using the
concept of “Exception Handling” in Java.
1 Flow of the Program
1.1 Input from System.in
At the beginning, the program asks user to enter the following two quantities via keyboard:
ˆ Length of the random string that will be used in the rest of the program (it is an
integer in the legal range of 100 thousand (inclusive) to 1 billion (inclusive)),
ˆ Maximum length of the special patterns that the program looks for (it is an integer in
the legal range of 3 (inclusive) to 15 (inclusive))
If the user does not enter each of the above values within the legal range, the main
method needs to throw a NumberFormatException in a try block. The exception must be
caught in the main method by requesting the the user to try again (see the starter code
posted on Canvas for more details).
1.2 Random String Generation
In the second step, the program uses java.util.Random.nextInt(int bound) method to generate
a random string made of a sequence of randomly generated lowercase letters. The above
1 private static String randomStringGenerator(int length) {
2 Random random = new Random(System.nanoTime());
3 char[] a
ay = new char[length];
4 for (int i = 0; i < length; i++)
5 a
ay[i] = (char) (’a’ + random.nextInt(26));
6 return new String(a
ay);
7 }
method, which is called by the main method, generates a random string with a given length.
This string is only made of lowercase letters in the alphabet.
1
1.3 Finding Special Patterns
In the third step, the program uses “Exception Handling” to find the longest most-interesting/special
pattern in the generated random string. The program is interested in finding one of the fol-
lowing special patterns:
I. Singleton string: A singleton string is made of only one letter. Examples: mmmmm,
qqqqqqq,
, s, yyy
II. Arithmetic String of Order 1: A string made of subsequent alphabetical letters that
appear in the alphabetical order. Examples: bcdef, pqrstuvwx, jk, y
III. Arithmetic String of Order -1: A string made of subsequent alphabetical letters
that appear in the reverse alphabetical order. Example: fedcb, xwvutsrqp, kj, y
IV. Balanced Tripartite String: A string made of three identical parts. Example: bus-
usbus, laptoplaptoplaptop, zzz
V. Balanced Bipartite String: A string made of two identical halves. Examples: tick-
tick, hophop, tantan, nocknock, nn
VI. Palindrome: A palindrome reads the same backward as forward. Examples: abcba,
ob, g
Please note that the above list is ranked in the decreasing order of their rarity. If there
are two interesting patterns of the same length in the random string, the program needs to
eport the more infrequent one!
For example, consider the following random string:
thisisarandomstringbo
o
obendofthestring
In this string, there is a palindrome of length 9 (bo
o
ob) and a balanced tripartitie of
the same length (bo
o
ob). The program reports the latter one as it is higher in the rank
of special patterns.
As another example, consider the following random string:
yyyyyyyyycdefghijkl
In this string, there is a sinleton string of length 9 (yyyyyyyyy) and an arithmetic string of
order 1 with length 10 (cdefghijkl). The program reports the latter one as it is longer. When
eporting the special pattern, the program needs to specify the actual pattern (cdefghijkl)
and the index of its occu
ence (9).
2
2 Required Exception Classes
To implement the third step of the program, you need to first define one exception class
for each special pattern and then throw an instance of it once you find the pattern in the
andom string. For example, the following exception is defined to handle singleton strings:
An instance of this exception is constructed and thrown once it is found in the random
1 public class SingletonException extends Exception {
2 private String singletonString;
3 private int occu
enceIndex;
4 @Ove
ide
5 public String getMessage() {
6 return singletonString + ” is a singleton string that is found at index ” + occu
enceIndex + ”!”;
7 }
8 public SingletonException(String singletonString, int index) {
9 this.singletonString = singletonString;
10 occu
enceIndex = index;
11 }
12 }
string. The following static method is responsible for finding the singleton patterns: The
1 private static void singletonMiner(String mine, int length) throws SingletonException{
2 for (int start = 0; start < mine.length() - length; start++) {
3 int i;
4 for (i = start + 1; i < start + length; i++)
5 if (mine.charAt(i) != mine.charAt(i - 1))
6
eak;
7 if (i == start + length)
8 throw new SingletonException(mine.substring(start, start + length), start);
9 }
10 }
exception thrown by the method singletonMiner is caught by the following try-catch block
that appears in the main method:
1 patternMaxLength = 5;
the max length of pattern is given by user via keyboard!
2 String randomString = randomStringGenerator(randomStringLength);
3 try {
4 for (int length = patternMaxLength; length > 0; length−−)
5 singletonMiner(randomString, length);
6 } catch (Exception exp) {
7 System.out.println(exp.getMessage());
8 }
3 Submissions
You need to submit a .zip file compressing the packages containing all the java source files
elated to the assignment (.java files).
3
Answered 1 days After Mar 20, 2022

Solution

Kshitij answered on Mar 21 2022
108 Votes
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here