0% found this document useful (0 votes)
23 views45 pages

04 Slide

Uploaded by

Bata Krishna
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views45 pages

04 Slide

Uploaded by

Bata Krishna
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 45

Chapter 4 Mathematical Functions,

Characters, and Strings

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
1
Objectives
 To solve mathematics problems by using the methods in the Math class (§4.2).
 To represent characters using the char type (§4.3).
 To encode characters using ASCII and Unicode (§4.3.1).
 To represent special characters using the escape sequences (§4.4.2).
 To cast a numeric value to a character and cast a character to an integer (§4.3.3).
 To compare and test characters using the static methods in the Character class (§4.3.4).
 To introduce objects and instance methods (§4.4).
 To represent strings using the String objects (§4.4).
 To return the string length using the length() method (§4.4.1).
 To return a character in the string using the charAt(i) method (§4.4.2).
 To use the + operator to concatenate strings (§4.4.3).
 To read strings from the console (§4.4.4).
 To read a character from the console (§4.4.5).
 To compare strings using the equals method and the compareTo methods (§4.4.6).
 To obtain substrings (§4.4.7).
 To find a character or a substring in a string using the indexOf method (§4.4.8).
 To program using characters and strings (GuessBirthday) (§4.5.1).
 To convert a hexadecimal character to a decimal value (HexDigit2Dec) (§4.5.2).
 To revise the lottery program using strings (LotteryUsingStrings) (§4.5.3).
 To format output using the System.out.printf method (§4.6).

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
2
Mathematical Functions
Java provides many useful methods in the Math
class for performing common mathematical
functions.

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
3
The Math Class
 A method is a group of statements that performs a specific
task. You have already used the pow(a, b) method to
compute ab and the random() method for generating a
random number. There are many other useful methods in
the Math class. They can be categorized as trigonometric
methods, exponent methods, rounding methods and service
methods. Service methods include the rounding, min, max,
absolute, and random methods.
 In addition to methods, the Math class provides two useful
double constants, PI and E (the base of natural
logarithms). You can use these constants as Math.PI and
Math.E in any program.

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
4
The Math Class
 Class constants:
– PI
–E
 Class methods:
– Trigonometric Methods
– Exponent Methods
– Rounding Methods
– min, max, abs, and random Methods

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
5
Trigonometric Methods
 sin(double a) Examples:

 cos(double a) Math.sin(0) returns 0.0


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

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
6
Exponent Methods
 exp(double a) Examples:
Returns e raised to the power of a.
 Math.exp(1) returns 2.71
log(double a)
Math.log(2.71) returns 1.0
Returns the natural logarithm of a.
Math.pow(2, 3) returns 8.0
 log10(double a) Math.pow(3, 2) returns 9.0
Returns the 10-based logarithm of Math.pow(3.5, 2.5) returns
a. 22.91765
Math.sqrt(4) returns 2.0
 pow(double a, double b)
Math.sqrt(10.5) returns 3.24
Returns a raised to the power of b.
 sqrt(double a)
Returns the square root of a.

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
7
Rounding Methods
 double ceil(double x)
x 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)
Return (int)Math.floor(x+0.5).
 long round(double x)
Return (long)Math.floor(x+0.5).

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
8
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.6) returns –3.0
Math.rint(-2.1) returns -2.0
Math.rint(2.5) returns 2.0
Math.rint(2.501) returns 3.0
Math.rint(-2.5) returns -2.0
Math.round(2.5) returns 3
Math.round(2.501) returns 3
Math.round(2.0) returns 2
Math.round(-2.4) returns -2
Math.round(-2.6) returns -3
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
9
min, max, and abs
 max(a, b)and min(a, b) Examples:
Returns the maximum or
minimum of two parameters.
Math.max(2, 3) returns 3
 abs(a) Math.max(2.5, 3) returns
Returns the absolute value of the 3.0
parameter. Math.min(2.5, 3.6)
 random() returns 2.5
Returns a random double value Math.abs(-2) returns 2
in the range [0.0, 1.0). Math.abs(-2.1) returns
2.1

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
10
The random Method
Generates a random double value greater than or equal to 0.0 and
less than 1.0 (0 <= Math.random() < 1.0).

Examples:

Returns a random integer


(int)(Math.random() * 10)
between 0 and 9.

50 + (int)(Math.random() * 50) Returns a random integer


between 50 and 99.

In general,

a + Math.random() * b Returns a random number between


a and a + b, excluding a + b.

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
11
Case Study: Computing Angles
of a Triangle
x2, y2
A = acos((a * a - b * b - c * c) / (-2 * b * c))
a B = acos((b * b - a * a - c * c) / (-2 * a * c))
B
c C = acos((c * c - b * b - a * a) / (-2 * a * b))
C
A x3, y3
b
x1, y1

Write a program that prompts the user to enter the


x- and y-coordinates of the three corner points in a
triangle and then displays the triangle’s angles.

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
12
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
13
Character Data Type
Four hexadecimal digits.
char letter = 'A'; (ASCII)
char numChar = '4'; (ASCII)
char letter = '\u0041'; (Unicode)
char numChar = '\u0034'; (Unicode)

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 = 'a';
System.out.println(++ch);
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
14
Unicode Format
Java characters use Unicode, a 16-bit encoding scheme
established by the Unicode Consortium to support the
interchange, processing, and display of written texts in the
world’s diverse languages. Unicode takes two bytes,
preceded by \u, expressed in four hexadecimal numbers
that run from '\u0000' to '\uFFFF'. So, Unicode can
represent 65535 + 1 characters.
Unicode \u03b1 \u03b2 \u03b3 for three Greek
letters

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
15
ASCII Code for Commonly Used
Characters
Characters Code Value in Decimal Unicode Value

'0' to '9' 48 to 57 \u0030 to \u0039


'A' to 'Z' 65 to 90 \u0041 to \u005A
'a' to 'z' 97 to 122 \u0061 to \u007A

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
16
Escape Sequences for Special Characters

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
17
Casting between char and
Numeric Types
A char can be cast int any numeric type
and vice versa.
int i = 'a'; // Same as int i = (int)'a';

char c = 97; // Same as char c = (char)97;

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
18
Comparing and Testing
Characters
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");

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
19
Methods in the Character Class
Method Description

isDigit(ch) Returns true if the specified character is a digit.


isLetter(ch) Returns true if the specified character is a letter.
r
isLetterOfDigit(ch) Returns true if the specified character is a letter or digit.
isLowerCase(ch) Returns true if the specified character is a lowercase letter.
isUpperCase(ch) Returns true if the specified character is an uppercase letter.
toLowerCase(ch) Returns the lowercase of the specified character.
toUpperCase(ch) Returns the uppercase of the specified character.

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
20
Methods in the Character Class

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
21
The String Type
The char type only represents one character. To represent a string of
characters, use the data type called String. For example,

String message = "Welcome to Java";

String is actually a predefined class in the Java library just like the
System class and Scanner class.

The String type is not a primitive type. It is known as a reference type. Any Java
class can be used as a reference type for a variable. The variable declared by a
reference type is known as a reference variable that references an object. Here,
message is a reference variable that references a string object with contents
Welcome to Java.

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
22
Simple Methods for String Objects
Method Description

length() Returns the number of characters in this string.


charAt(index) Returns the character at the specified index from this string.
concat(s1) Returns a new string that concatenates this string with string s1.
toUpperCase() Returns a new string with all letters in uppercase.
toLowerCase() Returns a new string with all letters in lowercase.
trim() Returns a new string with whitespace characters trimmed on both sides.

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
23
Simple Methods for String Objects
Strings are objects in Java. The methods in the preceding
table can only be invoked from a specific string instance.
For this reason, these methods are called instance methods.
A non-instance method is called a static method. A static
method can be invoked without using an object. All the
methods defined in the Math class are static methods. They
are not tied to a specific object instance. The syntax to
invoke an instance method is

referenceVariable.methodName(arguments).

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
24
Getting String Length
String message = "Welcome to Java";
System.out.println("The length of " + message + " is "
+ message.length());

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
25
Getting Characters from a String

String message = "Welcome to Java";


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

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
26
Converting Strings
 "Welcome".toLowerCase() returns a new string,
welcome.

 "Welcome".toUpperCase() returns a new string,


WELCOME.

 " Welcome Home ".trim() returns a new string,


Welcome Home.

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
27
String Concatenation
String s3 = s1.concat(s2); or String s3 = s1 + s2;

// Three strings are concatenated


String message = "Welcome " + "to " + "Java";

// String Chapter is concatenated with number 2


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

// String Supplement is concatenated with character B


String s1 = "Supplement" + 'B';
// s1 becomes SupplementB
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
28
Reading a String from the Console
 To read a string from the console, invoke the next()
method on a Scanner object.

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("s1 is " + s1);


System.out.println("s2 is " + s2);
System.out.println("s3 is " + s3);
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
29
Reading a String from the Console

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
30
Reading a Character from the Console

Scanner input = new Scanner(System.in);


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

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
31
Two Types of String Objects
String objects can be created in following two expressions:

String strObject = new String("Java");


String strLiteral = "Java";

When you create String object using new() operator, it


always create a new object in the heap memory . On the
other hand, if you create object using String literal syntax
e.g. "Java", it may return an existing object from String
pool. Otherwise it will create a new string object and put in
string pool for future re-use.

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
32
REMARK:

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
33
Comparing Strings
• The == operator checks only whether two string
variables refer to the same object; it does not
tell you whether they have the same contents.

• You cannot use the == operator to find out


whether two string variables have the same
contents. Instead, you should use the equals
method.

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
34
Comparing Strings
The String class contains the methods as shown below for comparing two strings .

Method Description

equals(s1) Returns true if this string is equal to string s1.


equalsIgnoreCase(s1) Returns true if this string is equal to string s1; it is case insensitive.
compareTo(s1) Returns an integer greater than 0, equal to 0, or less than 0 to indicate whether
this string is greater than, equal to, or less than s1.
compareToIgnoreCase(s1) Same as compareTo except that the comparison is case insensitive.
startsWith(prefix) Returns true if this string starts with the specified prefix.
endsWith(suffix) Returns true if this string ends with the specified suffix.

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
35
Comparing Strings
The following code, for instance, can be used to compare two strings:

if (string1.equals(string2))
System.out.println("string1 and string2 have the same
contents");
else
System.out.println("string1 and string2 are not equal");

For example, the following statements display true and then false.
String s1 = "Welcome to Java";
String s2 = "Welcome to Java";
String s3 = "Welcome to C++";
System.out.println(s1.equals(s2)); // true
System.out.println(s1.equals(s3)); // false
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
36
Comparing Strings

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
37
Comparing Strings

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
38
Obtaining Substrings
Method Description

substring(beginIndex) Returns this string’s substring that begins with the character at the specified
beginIndex and extends to the end of the string, as shown in Figure 4.2.

substring(beginIndex, Returns this string’s substring that begins at the specified beginIndex and
endIndex) extends to the character at index endIndex – 1, as shown in Figure 9.6.
Note that the character at endIndex is not part of the substring.

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
39
Finding a Character or a Substring
in a String
Method Description

indexOf(ch) Returns the index of the first occurrence of ch in the string. Returns -1 if not
matched.
indexOf(ch, fromIndex) Returns the index of the first occurrence of ch after fromIndex in the string.
Returns -1 if not matched.
indexOf(s) Returns the index of the first occurrence of string s in this string. Returns -1 if
not matched.
indexOf(s, fromIndex) Returns the index of the first occurrence of string s in this string after
fromIndex. Returns -1 if not matched.
lastIndexOf(ch) Returns the index of the last occurrence of ch in the string. Returns -1 if not
matched.
lastIndexOf(ch, Returns the index of the last occurrence of ch before fromIndex in this
fromIndex) string. Returns -1 if not matched.
lastIndexOf(s) Returns the index of the last occurrence of string s. Returns -1 if not matched.
lastIndexOf(s, Returns the index of the last occurrence of string s before fromIndex.
fromIndex) Returns -1 if not matched.

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
40
Finding a Character or a Substring
in a String
int k = s.indexOf(' ');
String firstName = s.substring(0, k);
String lastName = s.substring(k + 1);

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
41
Conversion between Strings and Numbers

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
42
Formatting Output
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.

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
43
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.460000
%e a number in standard scientific notation 4.556000e+01
%s a string "Java is cool"

int count = 5;
items
double amount = 45.56;
System.out.printf("count is %d and amount is %f", count, amount);

display count is 5 and amount is 45.560000


Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
44
Examples

Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
45

You might also like