Question

In: Computer Science

Implement each of the following functions and write a basic main() function that tests each. For...

Implement each of the following functions and write a basic main() function that tests each. For convenience, you should be able to find this starter class under Mimir's assignment 4 starter code.

Do not change the name, parameters, or returns of any of these functions or of the name of the class itself. There is also no need in this assignment for any global variables. You are strongly encouraged to use your solution for some of these functions in others by making a function call (and not by copying and pasting). You are also strongly encouraged to write your own short, helper functions in order to simply things.

public class StringPractice {
  /*
   * returns true if c is one of the characters typically used to represent a "face card" in a
   * standard deck of playing cards.
   * 
   * These include: jack 'J' or 'j' queen 'Q' or 'q' king 'K' or 'k' ace 'A' or 'a
   */
  public static boolean isFace(char c) {
    /*
     * placeholder just so that the function compiles. fill in your implementation here.
     *
     * there is a similar placeholder for each of the remaining functions
     */
    return true;
  }
 
  /*
   * returns the index of the first face-card letter in s or -1 if s contains no face-card letters
   */
  public static int indexOfFirstFace(String s) {
    return -1;
  }
 
  /*
   * returns the index of the first occurrence of a face-card letter in s starting from index
   * startPosition or -1 if there are none at index startPosition or later. Notice that this method
   * has the same name as the previous one, but that it takes a different number of arguments. This
   * is perfectly legal in Java. It's called "method overloading"
   */
  public static int indexOfFirstFace(String s, int startPosition) {
    return -1;
  }
 
  /*
   * returns the index of the last occurrence of a face-card letter in s or -1 if s contains none
   */
  public static int indexOfLastFace(String s) {
    return -1;
  }
 
  /*
   * returns s in reverse. For example, if s is "Apple", the method returns the String "elppA"
   */
  public static String reversed(String s) {
    return "";
  }
 
  /*
   * returns the number of times that n occurs in h. For example, if h is "Mississippi" and n is
   * "ss" the method returns 2.
   */
  public static int numOccurrences(String h, String n) {
    return 0;
  }
 
  /*
   * returns true if s is the same backwards and forwards and false otherwise
   */
  public static boolean sameInReverse(String s) {
    return true;
  }
 
  /*
   * returns a new String which is the same as s, but with all of the face-card letters removed.
   */
  public static String withoutFaces(String s) {
    return "";
  }
 
  /*
   * returns true if s consists only of face-card letters or false otherwise
   */
  public static boolean containsOnlyFaces(String s) {
    return true;
  }
 
  /*
   * returns true if s contains no face-card letters or false otherwise
   */
  public static boolean containsNoFaces(String s) {
    return true;
  }
 
  /*
   * Passed a reference to a person's name in the form FIRST_NAME LAST_NAME. The method returns a
   * reference to a new String in the form LAST_NAME, FIRST_NAME.
   *
   * For example, if we were passed "Spongebob Squarepants", we'd return "Squarepants, Spongebob".
   * You may assume that the method is passed exactly two words separated by a single space.
   */
  public static String lastFirst(String s) {
    return "";
  }
}

Solutions

Expert Solution

1). ANSWER :

GIVENTHAT :

package com.test;

public class StringPractice {

   /*
   * returns true if c is one of the characters typically used to represent a
   * "face card" in a standard deck of playing cards. These include : jack
   * 'J'or 'j' queen 'Q' or 'q' kind 'k' or 'K' ace 'A' or 'a'
   */
   public static boolean isFace(char c) {
       char[] deck = { 'j', 'q', 'k', 'a', 'J', 'Q', 'K', 'A' };
       boolean flag = false;

       for (int i = 0; i < deck.length; i++) {
           if (c == deck[i]) {
               flag = true;
               break;
           }
       }
       return flag;
   }

   /*
   * returns the index of the first face-card letter in s or -1 if s contains
   * no face-card letters
   */

   public static int indexOfFirstFace(String s) {
       char[] deck = { 'j', 'q', 'k', 'a' };
       s = s.toLowerCase();
       int index = -1;

       for (int i = 0; i < s.length(); i++) {
           for (int j = 0; j < deck.length; j++) {
               if (s.charAt(i) == deck[j]) {
                   index = i;
                   return index;
               }
           }
       }
       return index;
   }

   /*
   * returns the index of the first face-card letter in s from a specified
   * position or -1 if s contains no face-card letters
   */

   public static int indexOfFirstFace(String s, int startPosition) {
       char[] deck = { 'j', 'q', 'k', 'a' };
       s = s.toLowerCase();
       int index = -1;

       for (int i = startPosition; i < s.length(); i++) {
           for (int j = 0; j < deck.length; j++) {

               if (s.charAt(i) == deck[j]) {
                   index = i;
                   return index;
               }
           }
       }
       return index;
   }

   /*
   * returns the index of the last occurrence of a face-card letter in s or -1
   * if s contains non;
   */

   public static int indexOfLastFace(String s) {
       char[] deck = { 'j', 'q', 'k', 'a' };
       s = s.toLowerCase();
       int index = -1;

       for (int i = s.length() - 1; i >= 0; i--) {
           for (int j = 0; j < deck.length; j++) {
               if (s.charAt(i) == deck[j]) {
                   index = i;
                   return index;
               }
           }
       }
       return index;
   }

   /*
   * return s in reverse. For Example if s is "Apple",the method returns the
   * string "elppA"
   */

   public static String reversed(String s) {
       String rev = "";
       for (int i = s.length() - 1; i >= 0; i--) {
           rev += s.charAt(i);
       }
       return rev;
   }
   /*
   * returns the number of times that n occurs in h. For example, if h is
   * "Mississippi" and n is "ss" then the method returns 2.
   */

   public static int numOccurrences(String h, String n) {
       return h.split(n).length - 1;
   }

   /*
   * returns true if s is the same backwards and forwards and false otherwise
   */

   public static boolean sameInReverse(String s) {

       boolean flag = true;
       for (int i = 0, j = s.length() - 1; i <= j; i++, j--) {
           if (s.charAt(i) != s.charAt(j)) {
               flag = false;
               break;
           }
       }

       return flag;
   }

   /*
   * returns new String which is the same as s, but with all of the face-card
   * letters removed.
   */
   public static String withoutFaces(String s) {

       String s1 = "";
       char[] deck = { 'j', 'q', 'k', 'a', 'J', 'Q', 'K', 'A' };
       for (int i = 0; i < s.length(); i++) {
           boolean flag = false;
           for (int j = 0; j < deck.length; j++) {

               if (s.charAt(i) == deck[j]) {
                   flag = true;
                   break;
               }
           }
           if (!flag)
               s1 += s.charAt(i);

       }
       return s1;
   }

   /*
   * returns true if s consists only of face-card letters or false otherwise
   */

   public static boolean containsOnlyFaces(String s) {
       char[] deck = { 'j', 'q', 'k', 'a', 'J', 'Q', 'K', 'A' };
       for (int i = 0; i < s.length(); i++) {
           boolean flag = false;
           for (int j = 0; j < deck.length; j++) {
               if (s.charAt(i) == deck[j]) {
                   flag = true;
                   break;
               }
           }
           if (flag == false)
               return false;

       }
       return true;
   }

   /*
   * returns true if s contains no face-card letters or false otherwise
   */
   public static boolean containsNoFaces(String s) {
       char[] deck = { 'j', 'q', 'k', 'a', 'J', 'Q', 'K', 'A' };
       for (int i = 0; i < s.length(); i++) {
           boolean flag = false;
           for (int j = 0; j < deck.length; j++) {
               if (s.charAt(i) == deck[j]) {
                   flag = true;
                   break;
               }
           }
           if (flag == true)
               return false;
       }
       return true;
   }

   /*
   * Passed a reference to a person's name in the form of FIRST_NAME LAST_NAME
   * Then the method returns a reference to new String in the form of
   * LAST_NAME,FIRST_NAME.
   *
   * For Example ,if we were passed "Spongebob Squarepants", we'd return
   * "Squarepants, Spongebob".
   * you may assume that the method is passed exactly two words    separated by a
   * single space.
   */
   public static String lastFirst(String s) {
       String[] s1 = s.split(" ");
       String s2 = s1[1] + ", " + s1[0];
       return s2;

   }

   public static void main(String[] args) {
       System.out.println(StringPractice.isFace('h'));
       System.out.println(StringPractice.indexOfFirstFace("hello"));
       System.out.println(StringPractice.indexOfFirstFace("hallj", 2));
       System.out.println(StringPractice.indexOfLastFace("hallo"));
       System.out.println(StringPractice.reversed("Apple"));
       System.out.println(StringPractice.numOccurrences("missisippi", "pp"));
       System.out.println(StringPractice.sameInReverse("hello"));
       System.out.println(StringPractice.withoutFaces("jhealloqk"));
       System.out.println(StringPractice.containsOnlyFaces("kqwa"));
       System.out.println(StringPractice.containsNoFaces("heallo"));
       System.out.println(StringPractice.lastFirst("Spongebob Squarepants"));
   }

}

//Please run the main method to execute all the methods. I have called all the methods from main methods.


Related Solutions

Write a C++ program which consists of several functions besides the main() function. The main() function,...
Write a C++ program which consists of several functions besides the main() function. The main() function, which shall ask for input from the user (ProcessCommand() does this) to compute the following: SumProductDifference and Power. There should be a well designed user interface. A void function called SumProductDifference(int, int, int&, int&, int&), that computes the sum, product, and difference of it two input arguments, and passes the sum, product, and difference by-reference. A value-returning function called Power(int a, int b) that...
C++ Write a program that has two functions. The 1st function is the main function. The...
C++ Write a program that has two functions. The 1st function is the main function. The main function should prompt the user for three inputs: number 1, number 2, and an operator. The main function should call a 2nd function called calculate. The 2nd function should offer the choices of calculating addition, subtraction, multiplication, and division. Use a switch statement to evaluate the operator, then choose the appropriate calculation and return the result to the main function.
Write the following functions. Each function needs function comments that describes function and its parameters double...
Write the following functions. Each function needs function comments that describes function and its parameters double sphereVolume( double radius) double sphereSuface( double radius) double cylinderVolume( double radius, double height) double coneSurface( double radius, double height) double coneVolume( double radius, double height) That computes the volume and surface of the sphere with radius, a cylinder with a circular base with radius radius , and height height , and a cone with a circular base with radius radius , and height height...
You must write each of the following scheme functions. You must use only basic scheme functions...
You must write each of the following scheme functions. You must use only basic scheme functions do not use third-party libraries to support any of your work. Do not use any function with side effects. Write a function (merge-sorter L1) that takes list-of-integers L1 and returns all elements of L1 in sorted order. You must use a merge-sort technique that, in the recursive case, a) splits L1 into two approximately-equal-length lists, b) sorts those lists, and then c) merges the...
You must write each of the following scheme functions. You must use only basic scheme functions...
You must write each of the following scheme functions. You must use only basic scheme functions do not use third-party libraries to support any of your work. Do not use any function with side effects. This problem need to use DrRacket software. Racket Language. Write a function named (forget-n L1 N) that returns the elements of L1 except for the first N. If N is negative, return all elements. If N exceeds the length of L1 return the empty list....
You must write each of the following scheme functions. You must use only basic scheme functions...
You must write each of the following scheme functions. You must use only basic scheme functions do not use third-party libraries to support any of your work. Do not use any function with side effects. This problem needs to use DrRacket software. Racket Language. Write a function (indices L1 X) that takes a list of elements L1 and an element X. The function returns a list of the indices in L1 that contain X. See the following examples for clarification....
You must write each of the following scheme functions. You must use only basic scheme functions,...
You must write each of the following scheme functions. You must use only basic scheme functions, do not use third-party libraries to support any of your work. Do not use any function with side effects. This problem need to use DrRacket software. Racket Language. Write a function named (first-n L1 N) that returns the first N elements of L1. If N is negative, return the empty list. If N exceeds the length of L1 return all elements of L1. (first-n...
You must write each of the following scheme functions. You must use only basic scheme functions...
You must write each of the following scheme functions. You must use only basic scheme functions do not use third-party libraries to support any of your work. Do not use any function with side effects. This problem need to use DrRacket software. Racket Language. Write a function (join-together L1 L2) that takes a sorted list (ascending) of integers L1 and a sorted list of elements L2 and returns a sorted list containing all elements of both L1 and L2. See...
You must write each of the following scheme functions. You must use only basic scheme functions...
You must write each of the following scheme functions. You must use only basic scheme functions do not use third-party libraries to support any of your work. Do not use any function with side effects. Write a function (indices L1 X) that takes a list of elements L1 and an element X. The function returns a list of the indices in L1 that contain X. See the following examples for clarificaton. (indices '(a b c a e f a) 'a')...
You must write each of the following scheme functions. You must use only basic scheme functions...
You must write each of the following scheme functions. You must use only basic scheme functions do not use third-party libraries to support any of your work. Do not use any function with side effects. Write a function named (list-replace ALIST SYM VAL) that accepts a list of elements and returns that list where all SYM's (a single symbol) have been replaced by the VAL (some scheme value). The replacement must occur even within nested lists. For example: (list-replace '(a...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT