Chapter 2
1 By Adugna H; 3/17/2025
String class
• in Java a string is a sequence of characters.
• But, unlike many other languages that implement strings as character
arrays, Java implements strings as objects of type String.
• when you create a String object, you are creating a string that cannot be
changed.
• That is a, once a String object has been created, you cannot change the
characters that comprise that string.
• You can still perform all types of string operations.
• The difference is that each time you need an altered version of an
existing string, a new String object is created that contains the
modifications.
• The original string is left unchanged.
Some important methods of string class
string length
• the length of a string is the number of character that it
contains
int length()
ex;
char chars[]={‘a’,’b’,’c’};
String s=new String(chars);
[Link]([Link]());
Character extraction
charAt():
to extract a single character from a string by using
index.
char charAt(int where)
Ex:
char ch;
ch=“abc”.charAt(1);
String comparison
• To compare the strings or substrings within strings.
equals() and equalsIgnoreCase()
Syntax:
Boolean equals(Object str)
-str is the String object being compared with the
invoking String object
class Teststringcomparison2{
public static void main(String args[]){
String s1="Sachin";
String s2="SACHIN";
[Link]([Link](s2));//false
[Link](s1.
equalsIgnoreCase(s2));//true
}
}
2) By Using == operator
The == operator compares references not values.
class Teststringcomparison3{
public static void main(String args[]){
String s1="Sachin";
String s2="Sachin";
[Link](s1==s2);//
true (because both refer to same instance)
}
}
6 By Adugna H; 3/17/2025
3) String compare by compareTo() method
The above code, demonstrates the use of == operator used for comparing
two String objects.
3) By Using compareTo() method
The String class compareTo() method compares values
lexicographically and returns an integer value that describes if first
string is less than, equal to or greater than second string.
Suppose s1 and s2 are two String objects. If:
•s1 == s2 : The method returns 0.
•s1 > s2 : The method returns a positive value.
•s1 < s2 : The method returns a negative value.
7 By Adugna H; 3/17/2025
class Teststringcomparison4{
public static void main(String args[]){
String s1="Sachin";
String s2="Sachin";
String s3="Ratan";
[Link]([Link](s2));//0
[Link]([Link](s3));//1(because s1>s3)
[Link]([Link](s1));//-1(because s3 < s1 )
}
}
8 By Adugna H; 3/17/2025
Searching Strings
indexOf( ) Searches for the first occurrence of a character or substring.
lastIndexOf( ) Searches for the last occurrence of a character or substring.
class IndexOfDemo {
public static void main(String args[ ]) {
String s = "Now is the time for all good men " +
"to come to the aid of their country.";
[Link](s);
[Link]("indexOf(t) = " + [Link]('t'));
[Link]("lastIndexOf(t) = " + [Link]('t'));
[Link]("indexOf(the) = " + [Link]("the"));
[Link]("lastIndexOf(the) = " + [Link]("the"));
[Link]("indexOf(t, 10) = " + [Link]('t', 10));
[Link]("lastIndexOf(t, 60) = " + [Link]('t', 60));
[Link]("indexOf(the, 10) = " + [Link]("the", 10));
[Link]("lastIndexOf(the, 60) = " + [Link]("the", 60));
}}
String replace(char original, char replacement)
• The replace( ) method replaces all occurrences
of one character in the invoking string
with another character.
class ReplaceDemo {
public static void main(String[] args) {
String str1 = "RISK";
String str2 = [Link]('R','D’);
[Link]("First String : "+str1);
[Link]("Second String : "+str2);
String str3 = [Link]("RI","A");
[Link]("Third String : "+str3);
}
}
Changing the Case of Characters Within a String
String toLowerCase( ):to change into lower case
String toUpperCase( ): to change into upper case
class LowerUpper {
public static void main(String args[]) {
String str1 = "java";
String str2 = "JAVA";
[Link]("Upper Case Of : "+str1+" is : "+[Link]());
[Link]("Lower Case Of : "+str2+" is : "+[Link]());
}}
Exception
Exception
Handling
14 By Adugna H; 3/17/2025
Exception
15
An exception is a problem that arises during the
execution of a program. An exception can occur for
many different reasons, including the following:
A user has entered invalid data.
A file that needs to be opened cannot be found.
A network connection has been lost in the middle of
communications, or the JVM has run out of memory.
Some of these exceptions are caused by user error,
others by programmer error, and others by physical
resources that have failed in some manner.
By Adugna H; 3/17/2025
Categories of Exception
16
1. Checked exceptions: A checked exception is an exception that is
typically a user error or a problem that cannot be foreseen by the
programmer. For example, if a file is to be opened, but the file cannot
be found, an exception occurs. These exceptions cannot simply be
ignored at the time of compilation.
2. Runtime exceptions: A runtime exception is an exception that occurs
that probably could have been avoided by the programmer. As opposed
to checked exceptions, runtime exceptions are ignored at the time of
compilation.
3. Errors: These are not exceptions at all, but problems that arise beyond
the control of the user or the programmer. Errors are typically ignored
in your code because you can rarely do anything about an error. For
example, if a stack overflow occurs, an error will arise. They are also
ignored at the time of compilation.
By Adugna H; 3/17/2025
Exception Hierarchy
17
All exception classes are subtypes of the [Link] class.
The exception class is a subclass of the Throwable class. Other than
the exception class there is another subclass called Error which is
derived from the Throwable class.
The Exception class has two main subclasses :
₪ IOException class
₪ RuntimeException Class.
By Adugna H; 3/17/2025
Catching Exceptions
18
A method catches an exception using a combination of
the try and catch keywords. A try/catch block is placed around the
code that might generate an exception. Code within a try/catch
block is referred to as protected code, and the syntax for using try/
catch looks like the following:
try {
//Protected code
}catch(ExceptionName e1)
{
//Catch block
}
A catch statement involves declaring the type of exception you are
trying to catch. If an exception occurs in protected code, the catch
block (or blocks) that follows the try isBychecked.
Adugna H;
3/17/2025
Example: // File Name : [Link]
import [Link].*;
public class ExcepTest{
public static void main(String args[])
{
Try
{
int a[] = new int[2];
[Link]("Access element three :" + a[3]);
}
catch(ArrayIndexOutOfBoundsException e)
{
[Link]("Exception thrown :" + e);
}
[Link]("Out of the block");
}
19 } By Adugna H; 3/17/2025
Multiple Catch Blocks
20
Syntax: try
{
//Protected code
}
catch(ExceptionType1 e1)
{
//Catch block
}
catch(ExceptionType2 e2)
{
//Catch block
}
catch(ExceptionType3 e3)
{
//Catch block
}
By Adugna H; 3/17/2025
Throws/Throw
21
•If a method does not handle a checked exception, the
method must declare it using the throws keyword.
•The throws keyword appears at the end of a method's
signature.
•You can throw an exception, either a newly instantiated
one or an exception that you just caught, by using
the throw keyword.
By Adugna H; 3/17/2025
Remote Exception
22
import [Link].*;
public class className
{
public void deposit(double amount) throws
RemoteException
{
// Method implementation
throw new RemoteException();
}
//Remainder of class definition
}
By Adugna H; 3/17/2025
Example:
Function throws a RemoteException and an
InsufficientFundsException
import [Link].*;
public class className
{
public void withdraw(double amount) throws RemoteException,
InsufficientFundsException
{
// Method implementation
}
//Remainder of class definition
}
23 By Adugna H; 3/17/2025
Finally Keyword
24
The finally keyword is used to create a block of code
that follows a try block.
A finally block of code always executes, whether or
not an exception has occurred.
Using a finally block allows you to run any cleanup-
type statements that you want to execute, no matter
what happens in the protected code.
By Adugna H; 3/17/2025
Syntax:
try
{
//Protected code
}
catch(ExceptionType1 e1)
{
//Catch block
}
catch(ExceptionType2 e2)
{
//Catch block
}
catch(ExceptionType3 e3)
{
//Catch block
}
finally
{
//The finally block always executes.
}
25 By Adugna H; 3/17/2025
Example:
public class ExcepTest
{
public static void main(String args[])
{
int a[] = new int[2];
try
{
[Link]("Access element three :" + a[3]);
}
catch(ArrayIndexOutOfBoundsException e)
{
[Link]("Exception thrown :" + e);
}
finally
{
a[0] = 6;
[Link]("First element value: " +a[0]);
[Link]("The finally statement is executed");
}
}
26 } By Adugna H; 3/17/2025
Declaring Your Own Exception
27
You can create your own exceptions in Java. Keep the
following points in mind when writing your own exception
classes:
€ All exceptions must be a child of Throwable.
€ If you want to write a checked exception that is
automatically enforced by the Handle or Declare Rule,
you need to extend the Exception class.
€ If you want to write a runtime exception, you need to
extend the RuntimeException class.
By Adugna H; 3/17/2025
Syntax:
class MyException extends Exception{ }
Example Module:
// File Name Insuffi[Link]
import [Link].*;
public class InsufficientFundsException extends
Exception
{
private double amount;
public InsufficientFundsException(double amount)
{
[Link] = amount;
}
public double getAmount()
{
return amount;
28 } By Adugna H; 3/17/2025
}
Example Program:
// File Name [Link]
import [Link].*;
public class CheckingAccount
{
private double balance;
private int number;
public CheckingAccount(int number)
{
[Link] = number;
}
public void deposit(double amount)
{
balance += amount;
}
29 By Adugna H; 3/17/2025
public void withdraw(double amount) throws
InsufficientFundsException
{
if(amount <= balance)
{
balance -= amount;
}
else
{
double needs = amount - balance;
throw new InsufficientFundsException(needs);
}
}
public double getBalance()
{
return balance;
}
public int getNumber()
{
return number;
}
}
30 By Adugna H; 3/17/2025
// File Name [Link] deposit() and withdraw()
public class BankDemo methods
{
public static void main(String [] args)
{
CheckingAccount c = new CheckingAccount(101);
[Link]("Depositing $500...");
[Link](500.00);
try
{
[Link]("\nWithdrawing $100...");
[Link](100.00);
[Link]("\nWithdrawing $600...");
[Link](600.00);
}
catch(InsufficientFundsException e)
{
[Link]("Sorry, but you are short $" +
[Link]());
[Link]();
}
}
31
} By Adugna H; 3/17/2025
Reading Assignment
32
File and java stream
By Adugna H; 3/17/2025
33
The
end
By Adugna H; 3/17/2025