Basic Java Programming
Chapter 2
4/3/2025 BY ADUGNA H; 1
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]());
package bb;
public class Bb {
public static void main(String[] args) {
// TODO code application logic here
String s = "hello class";
[Link]([Link]());
char arr[] ={'a','b','c'};
String s1 = new String(arr);
[Link]([Link]());
}
4/3/2025 BY ADUGNA H; 4
Character extraction
charAt():
to extract a single character from a string by using
index.
char charAt(int where)
Ex:
char ch;
ch=“abc”;
[Link]([Link](1));
Cont…
package bb;
public class Bb {
public static void main(String[] args) {
// TODO code application logic here
String s = "hello class";
[Link]([Link](2));
}
}
4/3/2025 BY ADUGNA H; 6
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]([Link](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 bo
th refer to same instance)
}
}
4/3/2025 BY ADUGNA H; 8
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.
4/3/2025 BY ADUGNA H; 9
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 )
}
}
4/3/2025 BY ADUGNA H; 10
Searching Strings
indexOf( ) Searches for the first occurrence of a character or substring.
lastIndexOf( ) Searches for the last occurrence of a character or substring.
Cont….
public class IndexOfExample {
public static void main(String[] args) {
String str = "Hello, world!";
[Link]([Link]('o')); // Output: 4
[Link]([Link]('o', 5)); // Output: 8
[Link]([Link]("world")); // Output: 7
[Link]([Link]("Java")); // Output: -1 (not found)
4/3/2025 BY ADUGNA H; 12
class IndexOf {
public static void main(String args[ ]) {
String s= "Well come to Basic java programming";
[Link](s);
[Link]("indexOf(t) = " + [Link]('t'));
[Link]("lastIndexOf(t) = " + [Link]('t'));
[Link]("indexOf(Java) = " + [Link]("Java"));
[Link]("lastIndexOf(the) = " + [Link]("the"));
[Link]("indexOf(t, 8) = " + [Link]('t', 8));
[Link]("lastIndexOf(t, 12) = " + [Link]('t', 12));
[Link]("indexOf(me, 1) = " + [Link]("me", 1));
[Link]("lastIndexOf(the, 6) = " + [Link]("the", 6));
}}
String replace(char original, char replacement)
• The replace( ) method replaces all occurrences of one
character in the invoking string with another
character.
class Replace {
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 Handling
4/3/2025 BY ADUGNA H; 17
Exception
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.
4/3/2025 BY ADUGNA H; 18
Categories of Exception
Types of Exceptions
[Link] Exceptions: These are exceptions checked at compile-
time (e.g., IOException, SQLException). The programmer must
handle them using try-catch or throws.
[Link] Exceptions (Runtime Exceptions): These occur at
runtime and are not checked at compile-time (e.g.,
NullPointerException, ArrayIndexOutOfBoundsException).
[Link]: These are serious problems that a program cannot recover
from (e.g., OutOfMemoryError, StackOverflowError).
4/3/2025 BY ADUGNA H; 19
Exception Hierarchy
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.
4/3/2025 BY ADUGNA H; 20
Catching Exceptions
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 is checked.
BY ADUGNA H;
4/3/2025 21
public class ExceptionExample {
public static void main(String[] args) {
try {
int result = 10 / 0; // This will throw ArithmeticException
[Link](result);
} catch (ArithmeticException e) {
[Link]("Cannot divide by zero!");
}
[Link]("Program continues...");
}
}
4/3/2025 BY ADUGNA H; 22
// File Name : [Link]
Example: 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](“You are looking out of an array”);
}
[Link]("Out of the block");
}
4/3/2025 } BY ADUGNA H; 23
Multiple Catch Blocks
Syntax: try
{
//Protected code
}
catch(ExceptionType1 e1)
{
//Catch block
}
catch(ExceptionType2 e2)
{
//Catch block
}
catch(ExceptionType3 e3)
{
//Catch block
}
4/3/2025 BY ADUGNA H; 24
Throws/Throw
•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;
4/3/2025 25
Remote Exception
import [Link].*;
public class className
{
public void deposit(double amount) throws RemoteException
{
// Method implementation
throw new RemoteException();
}
//Remainder of class definition
}
4/3/2025 BY ADUGNA H; 26
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
}
4/3/2025 BY ADUGNA H; 27
Finally Keyword
➢ 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.
4/3/2025 BY ADUGNA H; 28
try
Syntax: {
//Protected code
}
catch(ExceptionType1 e1)
{
//Catch block
}
catch(ExceptionType2 e2)
{
//Catch block
}
catch(ExceptionType3 e3)
{
//Catch block
}
finally
{
//The finally block always executes.
}
4/3/2025 BY ADUGNA H; 29
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");
}
}
4/3/2025
} BY ADUGNA H; 30
Declaring Your Own Exception
✓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.
4/3/2025 BY ADUGNA H; 31
Syntax:
class MyException extends Exception{ }
Example Module:
// File Name [Link]
import [Link].*;
public class InsufficientFundsException extends Exception
{
private double amount;
public InsufficientFundsException(double amount)
{
[Link] = amount;
}
public double getAmount()
{
return amount;
}
}
4/3/2025 BY ADUGNA H; 32
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;
}
4/3/2025 BY ADUGNA H; 33
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;
}
}
4/3/2025 BY ADUGNA H; 34
// 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]();
}
}
} 4/3/2025 BY ADUGNA H; 35
Files and File Handling
in Java
4/3/2025 BY ADUGNA H; 36
➢ In Java, file handling is used to read, write, create, and
manipulate files.
➢ The [Link] package provides classes for handling files, such as
File, FileReader, FileWriter, BufferedReader, and
BufferedWriter.
4/3/2025 BY ADUGNA H; 37
1. The File Class in Java
➢ The File class in Java, found in the [Link] package, represents a file
or directory path.
➢ Creating a File Object
➢ Before working with a file, we need to create a File object:
import [Link];
public class Main {
public static void main(String[] args) {
File myFile = new File("[Link]"); // Creating a File object
[Link]("File object created."); }}
➢ This does not create a new file—it only creates a file object
reference.
4/3/2025 BY ADUGNA H; 38
4/3/2025 BY ADUGNA H; 39
3. Creating a New File
import [Link];
import [Link];
public class FileExample {
public static void main(String[] args) {
try {
File myFile = new File("[Link]");
if ([Link]()) {
[Link]("File created: " + [Link]());
} else {
[Link]("File already exists.");
}
} catch (IOException e) {
[Link]("An error occurred.");
[Link]();
}
}
}
4/3/2025 BY ADUGNA H; 40
To write to a file, we use FileWriter.
import [Link]; 4. Writing to a File
import [Link];
public class WriteFile {
public static void main(String[] args) {
try {
FileWriter writer = new FileWriter("[Link]");
[Link]("Hello, Java File Handling!");
[Link]();
[Link]("Successfully wrote to the file."); }
catch (IOException e) {
[Link]("An error occurred.");
[Link](); } }}
4/3/2025 BY ADUGNA H; 41
read from a file, we use FileReader and BufferedReader.
import [Link];
import [Link];
import [Link];
public class ReadFile {
5. Reading a FileTo
public static void main(String[] args) {
try {
File myFile = new File("[Link]");
Scanner reader = new Scanner(myFile);
while ([Link]()) {
String data = [Link]();
[Link](data); }
[Link](); }
catch (FileNotFoundException e) {
[Link]("File not found.");
[Link](); } }}
4/3/2025 BY ADUGNA H; 42
6. Deleting a File
import [Link];
public class DeleteFile {
public static void main(String[] args) {
File myFile = new File("[Link]");
if ([Link]()) {
[Link]("File deleted: " +
[Link]());
} else {
[Link]("Failed to delete the file.");
}
}
}
4/3/2025 BY ADUGNA H; 43
import [Link]; 7. Checking File Information java
public class FileInfo {
public static void main(String[] args) {
File myFile = new File("[Link]");
if ([Link]()) {
[Link]("File Name: " + [Link]());
[Link]("Absolute Path: " + [Link]());
[Link]("Writable: " + [Link]());
[Link]("Readable: " + [Link]());
[Link]("File Size (bytes): " + [Link]());
} else {
[Link]("The file does not exist.");
}
}
}
4/3/2025 BY ADUGNA H; 44
The end
4/3/2025 BY ADUGNA H; 45