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

Lecture 01 - Mathematical Functions, Characters, And Strings

Chapter 4 of the textbook covers mathematical functions, characters, and strings in Java programming. It explains the character data type, the string type, and various mathematical functions available in the Math class, including trigonometric, exponent, and rounding methods. Additionally, it discusses methods for comparing and manipulating strings, as well as casting between character and numeric types.

Uploaded by

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

Lecture 01 - Mathematical Functions, Characters, And Strings

Chapter 4 of the textbook covers mathematical functions, characters, and strings in Java programming. It explains the character data type, the string type, and various mathematical functions available in the Math class, including trigonometric, exponent, and rounding methods. Additionally, it discusses methods for comparing and manipulating strings, as well as casting between character and numeric types.

Uploaded by

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

Chapter 4

Mathematical
Functions,
Characters, and
Strings
From the textbook
Introduction to Java Programming and
Data Structures 11/e

Instructor: Hoang Ngoc Long


Objective

• Learn the mathematical functions, Characters, and


Strings in Java
Agenda

1. Character Data Type


2. The String Type
3. Mathematical Functions
Character Data Type

char letter = 'A'; (ASCII)


char numChar = '4'; (ASCII) Four hexadecimal digits.

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);
4
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

5
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

6
Escape Sequences for Special Characters

7
Appendix B: ASCII Character Set
ASCII Character Set is a subset of the Unicode from \u0000 to \u007f

8
ASCII Character Set, cont.
ASCII Character Set is a subset of the Unicode from \u0000 to \u007f

9
Casting between char and Numeric Types
• A char can be cast into any numeric type, and vice versa. When an
integer is cast into a char, only its lower 16 bits of data are used; the
other part is ignored.

• When a floating-point value is cast into a char, the floating-point


value is first cast into an int, which is then cast into a char.
Casting between char and Numeric Types
• When a char is cast into a numeric type, the character’s Unicode is
cast into the specified numeric type.

• Implicit casting can be used if the result of a casting fits into the target
variable. Otherwise, explicit casting must be used.
int i = 'a'; // Same as int i = (int)'a';
char c = 97; // Same as char c = (char)97;

11
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");

12
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.
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.

13
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.
• Reference data types will be thoroughly discussed in later chapter. For
the time being, you just need to know how to declare a String
variable, how to assign a string to the variable, how to concatenate
strings, and to perform simple operations for strings.

14
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.

15
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. The syntax to invoke an instance method is
referenceVariable.methodName(arguments)

• 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.
ClassName.methodName(arguments)

16
Getting String Length

String message = "Welcome to Java";


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

17
Getting Characters from a String

String message = "Welcome to Java";


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

18
Converting Strings

"Welcome".toLowerCase() returns a new string, welcome.


"Welcome".toUpperCase() returns a new string, WELCOME.
" Welcome ".trim() returns a new string, Welcome.

19
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; // s becomes Chapter2

// String Supplement is concatenated with character B


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

20
Reading a String from the Console
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);

21
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);

22
Comparing 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.

23
Comparing Strings

24
Obtaining Substrings

25
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.

26
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);

27
Mathematical Functions

Java provides many useful methods in the Math class


for performing common mathematical functions.

The Math Class


• Class constants:
§ PI
§E
• Class methods:
§ Trigonometric Methods
§ Exponent Methods
§ Rounding Methods
§ min, max, abs, and random Methods

28
Trigonometric Methods
• The Math class contains the following methods for performing
trigonometric functions:

29
Trigonometric Methods
• The parameter for sin, cos, and tan is an angle in radians.
• The return value for asin and atan is an angle in radians in the
range between -𝜋/2 and 𝜋 /2, and for acos is between 0 and 𝜋.
• Examples

30
Exponent Methods

• exp(double a) Examples:
Returns e raised to the power of a. Math.exp(1) returns 2.71
Math.log(2.71) returns 1.0
• log(double a)
Math.pow(2, 3) returns 8.0
Returns the natural logarithm of a.
Math.pow(3, 2) returns 9.0
• log10(double a) Math.pow(3.5, 2.5) returns
Returns the 10-based logarithm of 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.

31
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.

• int round(float x)
Return (int) Math.floor(x+0.5).

• long round(double x)
Return (long) Math.floor(x+0.5).

32
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
Math.rint(-2.5) returns -2.0
Math.round(2.6f) returns 3
Math.round(2.0) returns 2
Math.round(-2.0f) returns -2
Math.round(-2.6) returns -3

33
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

34
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.

35
End of
Chapter

You might also like