Implement the Test5G class.
package test5;
import java.util.List;
public class Test5G {
private Test5G() {
// prevent instantiation
}
/**
* Tests if all characters in a string are equal. Returns false
* if s is the empty string.
*
* @param s
* a string to test
* @return true if all of the characters of s are equal, and
* false otherwise
*/
public static boolean allEqual(String s) {
// NOTE: This method invokes the recursive method
// allEqual(String s, char c) that you must implement
boolean result = false;
if (!s.isEmpty()) {
result = Test5G.allEqual(s, s.charAt(0));
}
return result;
}
/**
* Tests if all characters in a string s are equal to the given
* character.
*
* @param s
* a string
* @pre. s.length() > 0
* @param c
* a character
* @return true if all characters in s are equal to
* c
*/
static boolean allEqual(String s, char c) {
boolean result = false;
char first = s.charAt(0);
if (s.length() == 1) {
result = first == c;
}
else {
char second = s.charAt(1);
result = (first == second) && Test5G.allEqual(s.substring(1), c);
}
return result;
}
/**
* Counts the number of elements in t that are strictly greater
* than value
*
* @param t
* a list of integers
* @param value
* the value to compare against
* @return the number of elements in t that are strictly greater
* than value
*/
public static int countGreaterThan(List<Integer> t, int value) {
int count = 0;
if (t.isEmpty()) {
count = 0;
}
else {
double first = t.get(0);
if (first > value) {
count = 1;
}
count += Test5G.countGreaterThan(t.subList(1, t.size()), value);
}
return count;
}
}
/**
* Checks if the length of the given string is even.
* A length of zero is considered even.
*
* @param s a string
* @return true if s.length() is an even number
*/
public static boolean isEven(String s) {
boolean result = false;
if (s.isEmpty()) {
result = true;
}
else if (s.length() == 1) {
result = false;
}
else {
result = isEven(s.substring(2));
}
return result;
}