Creating Your First Java Classes
- Features of the Java Programming Language
- Java Program Types
- Saving a Java Class
- Compiling a Java Class
- Running a Java Class
- Modifying a Java Class
Explanations to week content
Manipulating Characters
The char data type is used to hold any single character—for example, letters, digits, and punctuation marks. In addition to the primitive data type char, Java offers a Character class. The Character class contains standard methods for testing the values of characters.
The methods that begin with “is”, such as isUpperCase(), return a Boolean value that can be used in comparison statements; the methods that begin with “to”, such as toUpperCase(), return a
character that has been converted to the stated format.
Method | Description |
---|---|
isUpperCase() | Tests if character is uppercase |
toUpperCase() | Returns the uppercase equivalent of the argument; no change is made if the argument is not a lowercase letter |
isLowerCase() | Tests if character is lowercase |
toLowerCase() | Returns the lowercase equivalent of the argument; no change is made if the argument is not an uppercase letter |
isDigit() | Returns true if the argument is a digit (0−9) and false otherwise |
isLetter() | Returns true if the argument is a letter and false otherwise |
isLetterOrDigit() | Returns true if the argument is a letter or digit and false otherwise |
isWhitespace() | Returns true if the argument is whitespace and false otherwise; this includes the space, tab, newline, carriage return, and form feed |
To use any of the above methods, you have to call the method in the Character class. Thus to use the isUpperCase() method, you have to write, Character.isUpperCase(). All the methods starting with the is….returns true or false hence we use the if condition to check if it is true or not.
Using The Above Methods
Write a program that asks the user to enter a character. Your program should display whether the character is an upper case or not, is a lower case or not, is a digit or not, is a letter or not, is a letter or digit or not and is a white space or not.
NOTE:
The string method charAt is used to get the entered character. The data that is taken from the user is a String and the character is retrieved using the charAt(0) method of the String class.
Main.java
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
// TODO Auto-generated method stub
String data;
System.out.println("Enter a character");
Scanner input = new Scanner(System.in);
//Get the entered string
data = input.nextLine();
//Get the character at the 0 index
char aChar = data.charAt(0);
//Check the character
if(Character.isUpperCase(aChar)){
System.out.println(aChar+ "is an upper case");
}else{
System.out.println(aChar+ " is not an upper case");
}
if(Character.isLowerCase(aChar)){
System.out.println(aChar+ " is a lower case");
}else{
System.out.println(aChar+ " is not a lower case");
}
if(Character.isDigit(aChar)){
System.out.println(aChar+ " is a digit");
}else{
System.out.println(aChar+ " is not a digit");
}
if(Character.isLetter(aChar)){
System.out.println(aChar+ " is a letter");
}else{
System.out.println(aChar+ " is not a letter");
}
if(Character.isWhitespace(aChar)){
System.out.println(aChar+ " is a white space");
}else{
System.out.println(aChar+ " is not a white space");
}
}
}
Write a program that takes a character and converts the character to a lowercase and an uppercase.
Main.java
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
// TODO Auto-generated method stub
String data;
System.out.println("Enter a character");
Scanner input = new Scanner(System.in);
//Get the entered string
data = input.nextLine();
//Get the character at the 0 index
char aChar = data.charAt(0);
System.out.println(aChar+" to upper case will be :"+Character.toUpperCase(aChar));
System.out.println(aChar+" to lower case will be :"+Character.toLowerCase(aChar));
}
}
Declaring and Comparing String Objects
A sequence of characters enclosed within doublequotation marks is a literal string.
You can create a String object by using the keywordnew and the String constructor, just as you would create an object of any othertype.
For example, the following statement defines an objectnamed aGreeting, declares it to be of type String, and assigns an initial valueof “Hello” to the String:
String aGreeting = new String("Hello");
This is the same as:
String aGreeting = “Hello”;
Comparing String Values
In Java, String is a class, and each created String is a class object. A String variable name is a reference; that is, a String variable name refers to a location in memory, rather than to a particular value.
The distinction is subtle, but when you declare a variable of a basic, primitive type, such as int x = 10;, the memory address where x is located holds the value 10. If you later assign a new value to x, the new value replaces the old one at the assigned memory address. For example, if you code x = 45;,then 45 replaces 10 at the address of x.
In contrast, when you declare a String, such as String aGreeting = "Hello";,aGreeting does not hold the characters “Hello”; instead it holds a memory address where the characters are stored.
Because String references hold memory addresses, making simple comparisons between them often produces misleading results.
When you compare Strings with the == operator, you are comparing their memory addresses, not their values.
Furthermore, when you try to compare Strings using the less-than ( < ) or greater-than ( > ) operator, the program will not even compile.
Fortunately, the String class provides you with a number of useful methods. The String class equals() method evaluates the contents of two String objects to determine if they are equivalent. The method returns true if the objects have identical contents.
String Methods
Method | Description |
---|---|
equals() | Returns true if the objects have identical contents. |
equalsIgnoreCase() | Returns true if the objects have the same text and ignores case when determining if two Strings are equivalent |
length() | Returns the length of the string |
charAt() | Returns the character at the index specified in the argument |
endsWith() | Returns true if the String ends with the text passed in the argument |
startsWith() | Returns true if the String starts with the text passed in the argument |
replace() | allows you to replace all occurrences of some character within a String. |
toString | It converts any object to a String. |
substring() | Use to extract part of a String. takes two integer arguments—a start position and an end position—that are both based on the fact that a String’s first position is position zero |
contains() | Returns true if a String contains the text passed in the argument |
isEmpty() | Returns true if a String is empty |
append() | Takes in a string and add to the String object |
You also can use concatenation to convert any primitive type to a String. You can join a simple variable to a String, creating a longer String using the + operator.
Example
int age = 25;
String sAge = “”+age;
Alternatively
String sAge = age.toString();
Example
Write an application to ask a user to enter his/her gender. If a user enters female, display You play ampe else if the user enters male, display You play football. The application should work irrespective of the cases the user used to enter the gender. Thus for a female for instance, if a user enters Female or fEmAle or FEMALE etc it should still display You play ampe. If the user enters any other text, display Incorrect gender
Main.java
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
// TODO Auto-generated method stub
String gender;
System.out.println("Enter your gender");
Scanner input = new Scanner(System.in);
//Get the entered string
gender = input.nextLine();
if(gender.equalsIgnoreCase("female")){
System.out.println("You play ampe");
}else if(gender.equalsIgnoreCase("male")){
System.out.println("You play football");
}else{
System.out.println("Incorrect gender");
}
}
}
Alternatively, you can convert the enteredstring to a lower case and compare to the lowercase of the genders using theequals method. You can as well convert the entered string to an upper case andcompare to the uppercase of the genders using the equals method.
Main.java
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
// TODO Auto-generated method stub
String gender;
System.out.println("Enter your gender");
Scanner input = new Scanner(System.in);
//Get the entered string
gender = input.nextLine();
if(gender.toLowerCase().equals("female")){
System.out.println("You play ampe");
}else if(gender.toUpperCase().equals("MALE")){
System.out.println("You play football");
}else{
System.out.println("Incorrect gender");
}
}
}
CONVERT STRING TO NUMBERS
For int number we use Integer.parseInt(String variable to convert to number ) and for double we use Double.parseDouble(String variable to convert to number)
USING JOptionPane for input
To use the JOptionPane, you have to import the javax.swing.JOptionPane class.
To get the input from a user, you will usethe method showInputDialog which takes the arguments the parentcomponent and the String object to describe what the input is about. The parent component can be null.
e.g String name =JOptionPane.showInputDialog(null,”Enter your name”);
The showMessageDialog also displays themessage in a dialog. It also takes the arguments, the parentcomponent and themessage String.
e.g JOptionPane.showMessageDialog(null,”Welcome To Java Programming”);
Integer Example
Write a program that takes the age of a user using the JOptionPane dialog box. If the user is 18 and above, display your age is .... You are an adult so you can drink. Otherwise display your age is .... You are not an adult so you can't drink
Solution
import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
String sAge;
sAge = JOptionPane.showInputDialog(null,"Enter your age");
int age = Integer.parseInt(sAge);
if(age>=18) {
JOptionPane.showMessageDialog(null,"You are "+age+" years old. You are an adult so you can drink");
}else {
JOptionPane.showMessageDialog(null,"You are "+age+" years old. You are not an adult so you can't drink");
}
}
}
Double Example
Write a program that takes the total hoursworked in the month using the JOptionPane dialog box. The program shouldcalculate the salary for the month. The hourly rate is Ghc 8.5.
Solution
Main.java
import javax.swing.JOptionPane;
public class Main
{
static final double HOURLY_RATE = 8.5;
public static void main(String[] args) {
// TODO Auto-generated method stub
String hours;
hours = JOptionPane.showInputDialog(null,"How many hours did you work this month?");
double salary = Double.parseDouble(hours)*HOURLY_RATE;
JOptionPane.showMessageDialog(null, "The salary for the " + hours + "hours at a rate of GHC " + HOURLY_RATE + " per hour" +"\n is GHC " + salary);
}
}
ASSIGNMENT
Write an application that counts the total number of vowels contained in a String entered by the user.
Write a program that ask a user to enter an exams score using a dialogbox and grade the user using the Kings University Grading system and display the grade using a messagebox.