Prelab Exercises
Sections 3.2-3.5

These exercises focus on the String, Random, and Math classes defined in the Java Standard Class Library. The main concepts are in the text in sections 3.2-3.5. The goals of the lab are for you to gain experience with the following concepts:

Exercises

  1. Fill in the blanks in the program as follows: (Section 3.2, especially the example in Listing 3.1, should be helpful):
    (a) declare the variable town as a reference to a String object and initialize it to "Anytown, USA".
    (b) write an assignment statement that invokes the length method of the string class to find the length of the college String object and assigns the result to the stringLength variable
    (c) complete the assignment statement so that change1 contains the same characters as college but all in upper case
    (d) complete the assignment statement so that change2 is the same as change1 except all capital O's are replaced with the asterisk (*) character.
    (e) complete the assignment statement so that change3 is the concatenation of college and town (use the concat method of the String class rather than the + operator)
    // **************************************************
    //   StringPlay.java
    //
    //   Play with String objects
    // **************************************************
    public class StringPlay
    {
       public static void main (String[] args)
       {
          String college = new String ("PoDunk College");
    
          String town = new String("Anytown, USA");      // part (a)
    
          int stringLength;
          String change1, change2, change3; 
    
          stringLength = college.length();               // part (b)
    
          System.out.println (college + " contains " + stringLength + " characters.");
    
          change1 = college.toUpperCase();              // part (c)
    
          change2 = change1.replace('O','*');           // part (d)
    
          change3 = college.concat(town);               // part (e)
    
          System.out.println ("The final string is " + change3);
        }
    }
    

  2. The following program should read in the lengths of two sides of a right triangle and compute the length of the hypotenuse (recall that the length of the hypotenuse is the square root of side 1 squared plus side 2 squared). Complete it by adding statements to read the input from the keyboard and to compute the length of the hypotenuse (you need to use a Math class method for that).
    // *******************************************************************
    //   RightTriangle.java
    //
    //   Compute the length of the hypotenuse of a right triangle
    //   given the lengths of the sides     
    // *******************************************************************
    import java.util.Scanner;
    
    public class RightTriangle
    {
       public static void main (String[] args)
       {
          double side1, side2;  // lengths of the sides of a right triangle
          double hypotenuse;    // length of the hypotenuse
    
          Scanner scan = new Scanner (System.in);
    
          // Get the lengths of the sides as input
          System.out.print ("Please enter the lengths of the two sides of " +
                              "a right triangle (separate by a blank space): ");
          
          side1 = scan.nextDouble();
    
          side2 = scan.nextDouble();
    
          // Compute the length of the hypotenuse
    
          hypotenuse = Math.sqrt(Math.pow(side1,2) + Math.pow(side2,2));
    
          // Print the result
          System.out.println ("Length of the hypotenuse: " + hypotenuse);
        }
    {
    

  3. In many situations a program needs to generate a random number in a certain range. The Java Random class lets the programmer create objects of type Random and use them to generate a stream of random numbers (one at a time). The following declares the variable generator to be an object of type Random and instantiates it with the new operator.
         Random generator = new Random();
    
    The generator object can be used to generate either integer or floating point random numbers using either the nextInt() or nextFloat() methods, respectively. The integer returned by nextInt could be any valid integer (positive or negative) whereas the number returned by nextFloat is between 0 and 1 (up to but not including the 1). Most often the goal of a program is to generate a random integer in some particular range, say 30 to 99 (inclusive). There are two ways to do this:

    Fill in the blanks in the following program to generate the random numbers as described in the documentation. NOTE that that java.util.Random must be imported to use the Random class.

    // **************************************************
    //   LuckyNumbers.java
    //
    //   To generate two random "lucky" numbers 
    // **************************************************
    import java.util.Random;
    
    public class LuckyNumbers
    {
       public static void main (String[] args)
       {
          Random generator = new Random();
          int lucky1, lucky2, lucky3;   
    
          // Generate lucky1 (a random integer between 50 and 79) using the 
          // nextInt method (no parameter)
    
          lucky1 = Math.abs(generator.nextInt()) % 30 + 50;
     
          // Generate lucky2 (a random integer between 90 and 100) using the
          // nextInt method with an integer parameter
    
          lucky2 = generator.nextInt(11) + 90;
    
          // Generate lucky3 (a random integer between 11 and 30) using nextFloat
    
          lucky2 = (int) (generator.nextFloat() * 20) + 11;
    
          System.out.println ("Your lucky numbers are " + lucky1 + ", " + lucky2
                                      + ", and " + lucky3);
        }
    }