Question

In: Computer Science

Design and Requirements In order to execute its task the program must compare character values. For...

Design and Requirements

In order to execute its task the program must compare character values. For instance, a character named symbol is an upper case letter if and only if the boolean expressions ‘A’ <= symbol and

symbol <= ‘Z’ both evaluate true. Analogous expressions can be used to check for lower case letters between ‘a’ and ‘z’ and for digits between ‘0’ and ‘9’. To see if symbol is the ‘$’ or ‘_’ character, the relational operator == shall be used.

Declare a String variable title to store the title of the window as shown in Figure 1 below.

Declare a String variable solicitation to store the input solicitation line, see the template in Figure 1.

Input is solicited on a dialog window as shown in Figure 1, follow the template layout including the icon. In the method that creates the window you must not use the String literals

Figure 1

Declare a String variable input and assign input the String value returned by the window

Validate the input: check out if input is null (the result of the Cancel button) or the empty string (OK button applied with no text written in the window). Empty Strings have zero length, thus input is not accepted if either input == null or input length == zero is true. Using the corresponding Java Boolean expression build an if block. Within the block print the message

No input to process

Program exits

to the console and apply the System.exit(0); statement to terminate the program (no else block is needed here).

Declare an int variable index and a char type variable symbol

Assign index 0 and symbol the the first character of input (use the index variable, not the 0 literal).

Declare two String variables named messageOK and messageNot_OK and assign the String values shown on the message dialogs of Figure 2 and Figure 3. Follow the output templates exactly, including the icons.

Figure 2 Figure 3

Apply an if-else structure to display Figure 2 or Figure 3 according to the cases of a correct or a wrong first character in input. Build a single boolean expression to control the if statement. In the JOptionPane method literals are not allowed, use the declared String variables messageOK or messageNot_OK.

In order to check the second character, re-assign index.

Before the check we have to see if there is a second character. Build and if – else structure, the if is controlled by the expression input.length()>=2

In the if block re-assign the variables symbol, messageOK and messageNot_OK

Copy the previous if – else code into this if block as a nested structure. The boolean expression that controls the nested if( ) must be fitted to the check of the second character (digits are allowed now)

In the else statement of the outer structure print the following message to the console:

There is no second character to check

Solutions

Expert Solution

class StringOperations
{
   public static void main(String[] args)
   {
       //comparing two strings
/*
       String s1 = new String("abc");
       String s2 = new String("abc");
       String s3 = new String("Abc");

       System.out.println(s1 == s2);           //false => different references
       System.out.println(s1.equals(s2)); //true   => both objects has same state

       System.out.println(s2 == s3);           //false => different references
       System.out.println(s2.equals(s3)); //false => both objects has different state

       //comaring strings with out case, below method is defined in String class
       //public boolean equalsIgnoreCase(String s)

       String s4 = new String("a");
       String s5 = new String("A");
       System.out.println(s4.equals(s5));                           //false => compares strings with case
       System.out.println(s4.equalsIgnoreCase(s5));       //true => compares strings without case

       //comaring strings lexicographically, means after comarision method should return difference between string content, below method is defined in String class
       //public int compareTo(Object obj)                   <= inherited from Comparible interface
       //public int compareToIgnoreCase(String s)   <= it is developed in String class

       String s6 = new String("a");
       String s7 = new String("A");
       System.out.println(s6.compareTo(s7));                       //32 => a - A => 97 - 65   =>32       
       System.out.println(s6.compareToIgnoreCase(s7));   //0   => a - a => 97 - 97   =>0       

       //System.out.println(s6.compareTo(new Example()));   //with 1.4 compiler it is allowed but leads to CCE
                                                                                                       //with 1.5 or above compiler it is not allowed leads to CE, because of Generics concept.

       //printing String state. toString() method is overriden to print String object state

       String s8 = new String("abc");
       System.out.println(s8);//abc
*/
       //concatenating new string,
       //adding new string at end of old and placing the result in new object is called concatenation
       //We can do it in two ways
       //1. using + operator
       //2. using concat() method
       //public String concat(String newString)
/*
       //concatenation using + operator
       String s1 = new String("a");
       String s2 = s1 + "b";

       System.out.println(s1);//a
       System.out.println(s2);//ab
       System.out.println(s1 == s2); //false


       //concatenation using concat() method
           String s3 = new String("a");
       String s4 = s1.concat("b");

       System.out.println(s3);//a
       System.out.println(s4);//ab
       System.out.println(s3 == s4); //false
  
       //If we perform modification on string using String class methods, and if that object is changed as a result of that method call, new String object is created with that result. If we store that new object reference in reference variable, it is reachable else it is garbage collected.
      
       //old string is modified => new string is created => its reference is not strored => s4 state is still ab only
       s4.concat("c");
       System.out.println(s4);//ab

       // Due to a String method call if String object is not changed, then the current String object refernece is returned
      
       //What is the output from the below program?
       String s5 = s4.concat("");
       System.out.println(s4); // ab
       System.out.println(s5); // ab
       System.out.println(s4 == s5); //true
*/
       //deleting trailing and leading spaces of a String
       //public String trim() => it will not remove middle spaces

       String s1 = new String(" hari krishna ");
       String s2 = s1.trim();

       System.out.println(s1);
       System.out.println(s2);
       System.out.println(s1 == s2);

       System.out.println(s1.length());
       System.out.println(s2.length());

       //What is the oupt from below program?
       String s3 = new String("Naresh i Technologies");
       String s4 = s3.trim();

       System.out.println(s3);
       System.out.println(s4);
       System.out.println(s3 == s4);

       //finding length of the given string, we should use below method
       //public int length()
/*
       String s1 = new String("Java Programming Language");
       int size = s1.length();
       System.out.println("lenth of s1 string: "+ size);
      
       //print character of the given index, string index starts from ZERO, because its internal object is char array, should use below method.

       //public char chatAt(int index)
       System.out.println("character at 10th index in s1 string: "+ s1.charAt(10));

       //print all characters in given string with index, we should write our own logic with charAt() and length() methods
       for (int i = 0; i < size ; i++ )
       {
           System.out.println("character at index "+ i + "is : "+ s1.charAt(i));
       }
   */  
       //Note: If we pass index out of range (index < 0 || index >= string.length()) to charAt() method it leads StringIndexOutOfBoundsException

       //In the above for loop if we keep condition i <= size, after printing all 25 characters JVM throws SIOBE for 25th index.
/*
       System.out.println(s1.charAt(0)); //=> J
       System.out.println(s1.charAt(10)); //=> a
       //System.out.println(s1.charAt(-10)); //=> SIOBE
       //System.out.println(s1.charAt(26)); //=> SIOBE
*/

       //Finding index of given character of String in the passed string, use below methods

       //below methods return first occurence of given character or String
           //public int indexOf(char ch)
           //public int indexOf(String str)
      
       //below methods return last occurence of given character or String
           //public int lastIndexOf(char ch)
           //public int lastIndexOf(String str)

       //below methods return first occurence of given character or String from the "biggining" from the given index
           //public int indexOf(char ch, int fromIndex)
           //public int indexOf(String str, int fromIndex)

       //below methods return first occurence of given character or String from the "end to begin" from the given index
           //public int lastIndexOf(char ch, int fromIndex)
           //public int lastIndexOf(String str, int fromIndex)
/*
       String s1 = new String("Java Programming Language");
       System.out.println(s1.indexOf('a')); //=> 1
       System.out.println(s1.lastIndexOf('a')); //=> 22
       System.out.println(s1.indexOf('a', 4)); //=> 10
       System.out.println(s1.lastIndexOf('a', 22)); //=> 22
       System.out.println(s1.lastIndexOf('a', 21)); //=> 18

       System.out.println(s1.indexOf("Programming")); //=> 1
      
       //the given char or string is not avialable in the current string, above methods return -1.
       System.out.println(s1.indexOf("hari")); //=> -1
       System.out.println(s1.indexOf('k')); //=> -1

  
       //write a program to find the given string or char available or not
       //until 1.4 version, we should a condition using indexOf() method to find string is available or not
       //In 1.5 version, SUN introduced a method called "contains(String s)" to find string is available or not
       //It returns true if required string is available in given, else returns false.

       //check below methods definition given at end of the program
       findWithIndexOf("abcdef");
       findWithContains("abcdef");

       findWithIndexOf("asdfasdfsadf hari krishna asdfasdfsadf");
       findWithContains("asdfasdfsadf hari krishna asdfasdfsadf");
*/
       //replacing a character with new character, use methods of String class
           //public String replace(char oldChar, char newChar)
           //public String replace(CharSequence oldString, CharSequence newString)
/*       String s1 = new String("Java Programming Language");
       String s2 = s1.replace('J', 'K');

       System.out.println("s1 String: "+s1);
       System.out.println("s2 String: "+s2);

       String s3 = s1.replace('a', 'A');
       System.out.println("s3 String: "+s3);
      
       String s4 = s1.replace("Programming", "Object-Oriented Programming");
       System.out.println("s4 String: "+s4);

       String s5 = "Ha Ha Ha";
       String s6 = s5.replace("Ha", "Hello");
       System.out.println("s5 String: "+s5);
       System.out.println("s6 String: "+s6);

       String s7 = s6.replace("hello", "Hi");
       System.out.println("s7 String: "+s7);

       //due to replace method call no change in current string, hence JVM returns same current string object reference.
       System.out.println(s6 == s7);//true
   */  
       //converting all characters in string to upper or lower case
           //public String toUpperCase()
           //public String toLowerCase()
/*
       String s1 = "Hari Krishna";
       System.out.println(s1.toUpperCase()); //HARI KRISHNA
       System.out.println(s1.toLowerCase()); //hari krishna
       System.out.println(s1); //Hari Krishna

       String s1 = "hari";
       String s2 = s1.toLowerCase();
       String s3 = s1.toUpperCase();
       System.out.println(s1); //hari
       System.out.println(s2); //hari
       System.out.println(s3); //HARI
       System.out.println(s1 == s2); //true
       System.out.println(s1 == s3); //false
*/      
       //startsWith() / endsWith()
       String s = "Java Programming Language";
/*

       System.out.println(s.startsWith("Java"));
       System.out.println(s.startsWith("java"));
       System.out.println(s.startsWith("hari"));

       System.out.println(s.endsWith("hari"));
       System.out.println(s.endsWith("Language"));
   */  
       //isEmpty()
/*
       System.out.println(s.isEmpty());

       String s1 = "";
       String s2 = " ";
       String s3 = new String("");
       System.out.println(s1.isEmpty());
       System.out.println(s2.isEmpty());
       System.out.println(s2.length());
       System.out.println(s3.length());
       System.out.println(s3.isEmpty());
*/
       //substring()
/*
       System.out.println(s.substring(5,16));
       System.out.println(s.substring(s.indexOf("P"),s.indexOf(" L")));
       System.out.println(s.substring(s.indexOf("Language")));
   //   System.out.println(s.substring(16,5));
   //   System.out.println(s.substring(-1,5));
*/
       //split()
   /*
       String[] sarray = s.split(" ");
       int size   = sarray.length;
       for (int i = 0; i < size ; i++ )
       {
           System.out.println(i + " tocken is "+ sarray[i]);
       }
       */
/*
       System.out.println("" + 10 + 20);
       System.out.println("" + "10" + 20);
       System.out.println("10" + 20);
       System.out.println("10" + "20");
       System.out.println("1020");
*/

   }

   static void findWithIndexOf(String originalString)
   {
       if(originalString.indexOf("hari") != -1)
       {
           System.out.println("The String hari is available ");
       }
       else
       {
           System.out.println("The String hari is not available ");
       }
   }

   static void findWithContains(String originalString)
   {
       if(originalString.contains("hari"))
       {
           System.out.println("The String hari is available ");
       }
       else
       {
           System.out.println("The String hari is not available ");
       }
   }
}
class Example
{
};


Related Solutions

In objective-C Task: Write a program whose input is a character and a string, and whose...
In objective-C Task: Write a program whose input is a character and a string, and whose output indicates the number of times the character appears in the string. The output should include the input character and use the plural form, n's, if the number of times the characters appears is not exactly 1.You may assume that the string does not contain spaces and will always contain less than 50 characters. Ex: If the input is: n Monday the output is:...
Explain how the CMS promoting interoperability program and its security requirements impact EHR design and use...
Explain how the CMS promoting interoperability program and its security requirements impact EHR design and use . Explain the role of encryption in storing and security secured data. Explain the importance of making ethical decisions to comply with security requirements when using EHR systems. How could aspects of a christian worldview help inform ethical decision making in the situation?
A program must execute 1012 instructions to solve a problem. A single processor system can solve...
A program must execute 1012 instructions to solve a problem. A single processor system can solve the problem in 106 seconds. Thus on average the single processor system executes 106 or 1-million instructions per second. We have a new program that has been parallelized for execution on a distributed-memory system. This parallel program uses (p) processors. Here each processor will execute 1012/p instructions and each processor must send 109(p-1) messages. We will assume there is not additional overhead for the...
11.4 What are the basic requirements that a trainee must satisfy in order to get the...
11.4 What are the basic requirements that a trainee must satisfy in order to get the most out of training?
Please design a PLC program to perform the following task: An LED will be on when...
Please design a PLC program to perform the following task: An LED will be on when it’s activated by an NO push button for an accumulated 6 seconds. In other words, the push button can be on and off, but when it’s accumulated for six seconds, the LED will be on. After six seconds, the LED will be on for four seconds and is then reset itself for another cycle. Post LogixPro image of this programming Cascading timer Assume the...
Writing a Java Code Requirements of the JAVA program: Your task is to calculate geometric area...
Writing a Java Code Requirements of the JAVA program: Your task is to calculate geometric area for 3 shapes(square, rectangle and circle). You need to build a menu that allows users to enter options. Possible options are 'S' for square, 'R' for rectangle and 'C' for circle. HINT: you can use switch statement to switch on string input Invalid input should throw a message for the user. Example: Invalid input, please try again Each options should ask users for relevant...
Write a program that validates passwords based on the following requirements: • must be at least...
Write a program that validates passwords based on the following requirements: • must be at least 8 characters in length • must include at least 1 alphabet character • must include at least 1 number The program should implement the password checker using a function name validate_password, which takes two strings as input and returns one of the following: • 0 if the passwords match and fulfill all requirements • 1 if the passwords are not the same length •...
Write a program that validates passwords based on the following requirements: • must be at least...
Write a program that validates passwords based on the following requirements: • must be at least 8 characters in length • must include at least 1 alphabet character • must include at least 1 number The program should implement the password checker using a function name validate_password, which takes two strings as input and returns one of the following: • 0 if the passwords match and fulfill all requirements • 1 if the passwords are not the same length •...
In order for a pension plan to qualify for special tax treatment, what requirements must be...
In order for a pension plan to qualify for special tax treatment, what requirements must be met?
C++ requirements All values must be read in as type double and all calculations need to...
C++ requirements All values must be read in as type double and all calculations need to be done using type double. For part 2 you MUST have at least 4 functions, including main. The main function will be the driver of the program. It needs to either do the processing or delegate the work to other functions. Failure to follow the C++ requirements could reduce the points received from passing the tests. General overview This program will convert a set...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT