0% found this document useful (0 votes)
21 views

Lecture 4 String.ppt

The document provides an overview of the Java Class Library, including its organization into packages and the use of import declarations. It covers the Math class, its methods for mathematical operations, and examples of using the Scanner class for user input. Additionally, it discusses character data types, string manipulation, and various methods associated with the String class.

Uploaded by

yadullahgoni
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views

Lecture 4 String.ppt

The document provides an overview of the Java Class Library, including its organization into packages and the use of import declarations. It covers the Math class, its methods for mathematical operations, and examples of using the Scanner class for user input. Additionally, it discusses character data types, string manipulation, and various methods associated with the String class.

Uploaded by

yadullahgoni
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 41

•Strings

•Strings

String

1
1. Java Class Library

• A class library is a collection of classes that we use when


developing programs
• The Java standard class library is part of any Java development
environment
• The library classes are not part of the Java language per se, but we
rely on them heavily
• Various library classes we've already used in our programs, such as
System, Scanner, and Random
• Other class libraries can be obtained through third party vendors,
or you can create them yourself
• Classes must be imported into the program

2
Packages

• The classes of the Java standard class library are organized into
packages
• Some of the packages in the standard class library are:

Package Purpose

java.lang General support (Character, Math, System, Number, …)


java.util Utilities (Date, Random, Calendar, …)
java.applet Creating applets for the web
java.awt Graphics and graphical user interfaces
javax.swing Additional graphics capabilities
java.net Network communication
javax.xml.parsers XML document processing

3
import Declaration

• When you want to use a class from a package, you could use its fully
qualified name
java.util.Scanner
• Or you can import the class, and then use just the class name
import java.util.Scanner;
• To import all classes in a particular package, you can use the *
wildcard character
import java.util.*; // wildcard

4
import Declaration

• All classes of the java.lang package are imported automatically


into all programs
• It's as if all programs contain the following line:
import java.lang.*;
• That's why we didn't have to import the System or String classes
explicitly in earlier programs
• The Scanner class, on the other hand, is part of the java.util
package, and therefore must be imported

5
2. Class Math

• The Math class is part of the java.lang package


• The Math class contains methods (called class methods) that perform
various mathematical functions:

• PI constant
• E (base of natural logarithms) constant
• Trigonometric Methods
• Exponent Methods
• Rounding Methods
• min, max, abs, and random Methods

• Methods in the Math class are called static methods


• Static methods can be invoked through the class name – no object of
the Math class is needed
Double value = Math.cos(90) + Math.sqrt(delta);

6
Example
import java.util.Scanner;
public class Quadratic
{
public static void main (String[] args)
{
int a, b, c; // ax^2 + bx + c
double discriminant, root1, root2;
Scanner scan = new Scanner (System.in);

System.out.print ("Enter the coefficient of x squared: ");


a = scan.nextInt();
System.out.print ("Enter the coefficient of x: ");
b = scan.nextInt();
System.out.print ("Enter the constant: ");
c = scan.nextInt();

// Use quadratic formula to compute the roots.

discriminant = Math.pow(b, 2) - (4 * a * c);


root1 = ((-1 * b) + Math.sqrt(discriminant) ) / (2 * a);
root2 = ((-1 * b) - Math.sqrt(discriminant) ) / (2 * a);

System.out.println ("Root #1: " + root1);


System.out.println ("Root #2: " + root2);
}
}

7
Example
Output:

Enter the coefficient of x squared: 3


Enter the coefficient of x: 8
Enter the constant: 4
Root #1: -0.6666666666666666
Root #2: -2.0

Enter the coefficient of x squared: 2


Enter the coefficient of x: 4
Enter the constant: 8
Root #1: NaN
Root #2: NaN

NaN indicates undefined root due to square root of negative


value (sqrt of b^2-4ac)

8
Trigonometric Methods

Examples:
• sin(double a)
• cos(double a)
Math.sin(0) returns 0.0
Math.sin(Math.PI/6) returns 0.5
• tan(double a)
Math.sin(Math.PI/2) returns 1.0
• acos(double a)
Math.cos(0) returns 1.0
• asin(double a)
Math.cos(Math.PI/2) returns 0
• atan(double a)
Math.cos(Math.PI/6) returns 0.866

9
Exponent Methods

• exp(double a) Examples:
Returns e raised to the power of a.
• log(double a) Math.exp(1) returns 2.71
Returns the natural logarithm of a. Math.log(2.71) returns 1.0
Math.pow(2,3) returns 8.0
• log10(double a)
Returns the 10-based logarithm of a. Math.pow(3,2) returns 9.0
Math.pow(3.5,2.5) returns
• pow(double a, double b)
22.91765
Returns a raised to the power of b.
Math.sqrt(4) returns 2.0
• sqrt(double a) Math.sqrt(10.5) returns 3.24
Returns the square root of a.

10
Rounding Methods

• double ceil(double x)
x is rounded up to its nearest integer. This integer is returned as a double
value.
• double floor(double x)
x is rounded down to its nearest integer. This integer is returned as a double
value.
• double rint(double x)
x is rounded to its nearest integer. If x is equally close to two integers, the even
one is returned as a double.
• int round(float x)
returns (int)Math.floor(x+0.5)
• long round(double x)
returns (long)Math.floor(x+0.5)

11
Rounding Methods Examples
Math.ceil(2.1) returns 3.0
Math.ceil(2.0) returns 2.0
Math.ceil(-2.0) returns –2.0
Math.ceil(-2.1) returns -2.0
Math.floor(2.1) returns 2.0
Math.floor(2.0) returns 2.0
Math.floor(-2.0) returns –2.0
Math.floor(-2.1) returns -3.0
Math.rint(2.1) returns 2.0
Math.rint(2.0) returns 2.0
Math.rint(-2.0) returns –2.0
Math.rint(-2.1) returns -2.0
Math.rint(2.5) returns 2.0 //returns even value as double
Math.rint(-2.5) returns -2.0
Math.round(2.6f) returns 3 //round returns integers
Math.round(2.0) returns 2
Math.round(-2.0f) returns -2
Math.round(-2.6) returns -3

12
Min(), max(), and abs()

Examples:
• max(a,b)and min(a,b)
Returns the maximum or minimum
of two parameters. Math.max(2,3) returns 3
• abs(a) Math.max(2.5,3) returns 3.0
Returns the absolute value of the Math.min(2.5,3.6) returns 2.5
parameter. Math.abs(-2) returns 2
Math.abs(-2.1) returns 2.1

13
Method random()
Generates a random double value greater than or equal to 0.0 and less
than 1.0 (0.0 <= Math.random() < 1.0)

Examples:

In general,

14
Generating Random Characters

Each character has a unique Unicode between 0 and FFFF in hexadecimal


(65535 in decimal).

To generate a random character is to generate a random integer between


0 and 65535 using the following expression:

(int)(Math.random() * (65535 + 1))

Note:
Since 0.0 <= Math.random() <1.0, you have to add 1 to 65535

15
Generating Random Characters

Lowercase letter: The Unicode for lowercase letters are consecutive integers starting
from the Unicode for 'a', 'b', 'c', ..., and 'z'.

The Unicode for 'a' is (int)'a'

A random integer between (int)'a' and (int)'z‘ is


(int)((int)'a'+ Math.random()*((int)'z'-(int)'a'+1)

So, a random lowercase letter is:

(char)('a' + Math.random() * ('z' - 'a' + 1))

To generalize, a random character between any two characters ch1 and ch2 with ch1 <
ch2 can be generated as follows:

(char)(ch1 + Math.random() * (ch2 – ch1 + 1))

See Appendix B, page 1266, for character set order.


16
3. Character Data Type
A char variable stores a single character.
Character literals are delimited by single quotes:
'a' 'X' '7' '$' ',' '\n' '\t'
Example declarations:
char topGrade = 'A';
char terminator = ';', separator = ' ';
Note the distinction between a primitive char variable, which holds only one
character, and a String object, which can hold multiple characters.

17
Character Type - Revisited

char letter = 'A'; Four hexadecimal digits.

char numChar = '4';


char letter = '\u0041'; //Unicode for A
char numChar = '\u0034'; //Unicode for character 4

NOTE: The increment and decrement operators can also be used on char
variables to get the next or preceding Unicode character. For example, the
following statements display character b.

char ch = 'c';
ch = ch + 1;
System.out.println(ch); //prints character d
ch = ch - 2;
System.out.println(ch); //prints character b

18
ASCII Code in Decimal

19
Casting char Type

int i = 'a'; //Same as int i = (int)'a'; which is 97

char ch = 97; //Same as char ch = (char)97; which is 'a'

20
Comparing char Type

if (ch >= 'A' && ch <= 'Z')


System.out.println(ch + " is an uppercase letter");
else if (ch >= 'a' && ch <= 'z')
System.out.println(ch + " is a lowercase letter");
else if (ch >= '0' && ch <= '9')
System.out.println(ch + " is a numeric character");

21
Class Character Methods

22
Class Character Methods
Character ch1 = new Character('b'); //object NOT char type
Character ch2 = new Character(‘9'); //object NOT char type

Character.isLowerCase(ch1) returns true


Character.isLetterOrDigit(ch1) returns true
Character.isDigit(ch1) returns false
Character.isDigit(ch2) returns true
Character.toUpperCase(ch1) returns B

23
Class Character Test
// Class Character Test
import java.util.Scanner;
public class CharacterTest
{
public static void main (String[] args)
{
Character ch1 = new Character('b'); //object NOT char type
Character ch2 = new Character('9'); //object NOT char type

System.out.println(Character.isLowerCase(ch1)); //returns true


System.out.println(Character.isLetterOrDigit(ch1)); //returns true
System.out.println(Character.isDigit(ch1)); //returns false
System.out.println(Character.isDigit(ch2)); //returns true
System.out.println(Character.toUpperCase(ch1)); //returns B

char ch3 = 'R'; // char type variable


char ch4 = '7'; // char type variable
char ch5 = '*'; // char type variable

System.out.println(Character.isLowerCase(ch3)); //returns false


System.out.println(Character.isLetterOrDigit(ch5)); //returns false
System.out.println(Character.isDigit(ch4)); //returns true
System.out.println(Character.isDigit(ch5)); //returns false
System.out.println(Character.toLowerCase(ch3)); //returns r
}
}
24
Escape Sequences

Description Escape Sequence Unicode


Backspace \b \u0008
Tab \t \u0009
Linefeed \n \u000A
Carriage return \r \u000D
------------------------------------------------------------------------
Backslash \\ \u005C
Single Quote \' \u0027
Double Quote \" \u0022

25
4. Class String

• To create a String object, we need to declare a variables of type String:

String title = "Java Software Solutions";


• Each string literal (enclosed in double quotes) represents a String
object
• Once a String object has been created, neither its value nor its length
can be changed. Thus, String objects are immutable
• The String type is not a primitive type. It is a class type and known as a
object or reference type.

26
String Methods

• However, several methods of the String class return new String


objects that are modified versions of the original string
• A String object is a sequence of characters (known as Single-Dimensional
Array).
String courseName = "CS 2301";

0 1 2 3 4 5 6
C S 2 3 0 1

27
String Index Values

• It is occasionally helpful to refer to a particular character within a string


• This can be done by specifying the character's numeric index (position)
• The indexes begin at zero in each string
• In the string "Hello", the character 'H' is at index 0 and the 'o' is at
index 4

28
Getting Characters from a String

String message = "Welcome to Java";


char ch = message.charAt(0);
System.out.println("The first character in message is “ + ch);

String message = "Welcome to Java";


int messageLength = message.length();
System.out.println("The length of message is " + messageLength);

29
String Concatenation
// Three strings are concatenated
String message = "Welcome " + "to " + "Java";

// String Chapter is concatenated with number 2


String s = "Chapter" + 2; // s becomes Chapter2

// String Supplement is concatenated with character B


String s1 = "Supplement" + 'B'; // s1 becomes SupplementB

30
Example
public class StringMutation
{
// Prints a string and various mutations of it.
public static void main (String[] args)
{
String phrase = "Change is inevitable";
String mutation1, mutation2, mutation3, mutation4;

System.out.println ("Original string: \"" + phrase + "\"");


System.out.println ("Length of string: " + phrase.length());

mutation1 = phrase.concat(", except from vending machines.");


mutation2 = mutation1.toUpperCase();
mutation3 = mutation2.replace ('E', 'X');
mutation4 = mutation3.substring (3, 30); //excluding position 30
System.out.println ("Mutation #1: " + mutation1);
System.out.println ("Mutation #2: " + mutation2);
System.out.println ("Mutation #3: " + mutation3);
System.out.println ("Mutation #4: " + mutation4);

System.out.println ("Mutated length: " + mutation4.length());


}
}

31
Example
Output:

Original string: "Change is inevitable"


Length of string: 20
Mutation #1: Change is inevitable, except from vending machines.
Mutation #2: CHANGE IS INEVITABLE, EXCEPT FROM VENDING MACHINES.
Mutation #3: CHANGX IS INXVITABLX, XXCXPT FROM VXNDING MACHINXS.
Mutation #4: NGX IS INXVITABLX, XXCXPT F
Mutated length: 27

32
Other String Methods
String S1 = "Welcome";
String S2 = new String(char[]);
S2 = " Hello! ";
char ch = S1.charAt(index);
int length = S1.length();
int index = S1.indexOf(ch);
int index = S1.lastIndexOf(ch);
boolean b = S1.equals(S2);
boolean b = S1.equalsIgnoreCase(S2);
boolean b = S1.startsWith(S2);
Boolean b = S1.endsWith(S2);
String S = S1.toUpperCase();
String S = S2.toLowerCase();
String S = S2.substring(i); //from position i to last position
String S = S2.substring(i,j); //excluding j position
String S = S2.replace(ch1,ch2);
String S = S2.trim(); //returns "Hello!", no spaces

33
Reading Strings

Scanner input = new Scanner(System.in);


System.out.print("Enter three words separated by spaces: ");
String s1 = input.next();
String s2 = input.next();
String s3 = input.next();
System.out.println(“First word is " + s1);
System.out.println(“Second word is " + s2);
System.out.println(“Third word is " + s3);

Note: If we use
String s1 = input.nextLine();
s1 contains all typed characters until we press the "Enter" key.

34
Reading Characters

//Characters are read as strings

Scanner input = new Scanner(System.in);


System.out.print("Enter a character: ");
String s = input.nextLine(); //must press the Enter key
char ch = s.charAt(0);
System.out.println("The entered character is " + ch);

35
Comparing Strings

36
Obtaining Substrings

37
indexOf() method

38
Conversion of Strings/Numbers

You can convert strings of digits to numbers:


String intString = “123”;
int intValue = Integer.parseInt(intString);

String doubleString = “123.456”;


double doubleValue = Double.parseDouble(doubleString);

You can convert numbers to strings:


int number = 123456;
String s = "" + number; //gives "123456"

39
5. printf() Statement

Use the printf statement.

System.out.printf(format, items);

Where format is a string that may consist of substrings and


format specifiers.

A format specifier specifies how an item should be displayed.

An item may be a numeric value, character, boolean value, or a


string.

Each specifier begins with a percent (%) sign.

40
Frequently-Used Specifiers
Specifier Output Example .
%b a boolean value true or false
%c a character 'a'
%d a decimal integer 200
%f a floating-point number 45.4600000
%e a standard scientific notation 4.556000e+01
%s a string "Java is cool"

Homework: Type and run program FormatDemo, listing 4.6, page 148. It shows
how to display tabulated outputs using printf() statement.
41

You might also like