Mathematical Functions, Characters, and Strings
Download
Report
Transcript Mathematical Functions, Characters, and Strings
CS 201
California State University, Los
Angeles
Various
Mathematical Functions
Characters
Strings
We
have a lot of various mathematical
methods in Java
We’ve covered 2 so far:
• Pow
exponent method
• Random
service method
There
(min, max, absolute)
are also many trigonometric
methods
• We will cover…
Similar
to pow, these methods are all in
the Math (java)Class
• Format is the same:
Math.methodName
Math.pow
Math.sin
• Note: the Math Class is in the java.lang package,
and therefore doesn’t have to be imported
Everything in java.lang is implicitly included in a Java
program
sin(r)
Value of sine in radians
cos(r)
Value of cosine in radians
tan(r)
Value of tangent in radians
toRadians(d) Convert degrees into radians
toDegree(r) Convert radians into degrees
• (Note: “degree” is singular!)
asin(a)
Angle (in radians) of inverse sine
acos(a) Angle (in radians) of inverse cosine
atan(a)
Angle (in radians) of inverse
tangent
Keep
in mind most trig method
arguments are angles measured in
radians
Remember the range of radians:
• 0 to 2π
• Unit circle!
The
Math Class also contains two
constants, PI and E
• Both are doubles
• Access both using Math.constantName
• Math.PI
3.14159265358979323846f
• Math.E
2.7182818284590452354f
Simply
methods that are related to
exponents:
• From the Math Class
Math.methodName
exp(n)
Raises the value of e to the power n
log(n)
Natural Logarithm of n
log10(n)
Log10(n)
pow(a,b)
Exponent, or ab
sqrt(n)
The square root of n
There are also methods to round
• Again, from the Math Class
Math.methodName
ceil(x)
Ceiling of x
floor(x) Floor of x
rint(x) x rounded up to nearest integer
numbers
If x is equally close to two integers, the even one is returned as
a double
round(x)
rounds
(int)Math.floor(x+0.5) for integers
(long)Math.floor(x + 0.5) for doubles
Note: For exactly halfway values (4.5), round(x) rounds up
(5), while rint(x) rounds down (4)
Contains
min, max, abs, random
• min(a,b)
Returns the minimum of both numbers
Works for int, long, float, double
• max(a,b)
Returns the maximum of both numbers
Works for int, long, float, double
• abs(x)
Returns the absolute value of x
Works for int, long, float, double
Range
review
a + Math.random() * b
• Returns a random number between a and a+b,
excluding a+b
• How do I get a random number between 15 and
20?
• 400 – 4000?
Compute
• p123
the angles of a triangle
Distance
• p124
Formula
We
can include (and process) characters
in Java!
• We use the char data type
• We use character literals to specify characters
Type in a character between single quotes
• Characters are stored in UNICODE
Way to store international characters
Each number is matched to a character (in a
language)
Was 16-bit, but that wasn’t enough space (!!!)
Unicode
• International Characters
• Now holds up to 1,112,064 characters
ASCII
(American Standard Code for Information
Interchange)
8-bit encoding scheme
Used in most computers
(Western characters)
If
you don’t want to input characters with
string literals, you can use Unicode
values
• Takes 2 bytes (both in hex), preceded by \u
\u03b1
\u03b2
• Note: The first 128 values in Unicode are exactly
the same in ASCII, making the characters
compatible
Between \u0000 and \u007F
You
can use either ASCII or Unicode
• Ex:
char letter = ‘A’;
char letter = ‘\u0041’;
• Note: You can also use increment and decrement
to get the previous or next character!
char a = ‘a’;
++a;
System.out.println(a);
If
you want to use special characters that
are used by the system, computer, or
Java, you must use escape sequences
• Ex: (quotes, tabs, backslashes)
• These represent the characters without actually
writing them
• Use the backslash and then a specific character
to specify
Backslash (\) called an escape character
Different
• \b
• \t
• \n
• \f
• \r
• \\
• \”
escape sequences
backspace
Tab
Linefeed
Formfeed
Carriage return
Backslash
Double quote
You
can cast a char into a numeric type
• Only the lower 16-bits of data are used
You
can cast a number into a char
• Converted to Unicode
• Floating-point values are cast to int first
Numbers
between 0 and FFFF in hex are
implicitly casted into a char
• Anything else must be explicitly casted
You
can compare characters using
relational operators
Results are generated using Unicode
values
• What is the result of:
• ‘a’ < ‘b’ ?
• ‘1’ < ‘2’
There
are different methods of testing
characters in the Character class
• isDigit(ch)
• isLetter(ch)
• isLetterOrDigit(ch)
•
•
•
•
a digit
isLowerCase(ch)
isUpperCase(ch)
toLowerCase(ch)
toUpperCase(ch)
Returns true if ch is a digit
Returns true if ch is a letter
Returns true if ch is a letter or
Returns true if ch is lowercase
Returns true if ch is uppercase
Returns the lowercase version of ch
Returns the uppercase version of ch
Keep
in mind that char represents only one
character!
If you want to store multiple characters (or a
string of characters) you need a String data
type
• Ex: String message = “Strings can store a lot more than char”;
• The String data type is a reference type (not a
primitive)
Predefined class in Java (like System and Scanner)
Any Java class can be used as a reference type for a
variable
The String class has its own methods.
• You can access these methods by using the dot (.)
operator
• Methods:
length()
Returns the number of characters in the
string
charAt(index) Returns the character at the index value
concat(s1)
Returns a new string that concatenates the
current 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
(spaces) trimmed (removed) on both sides
The
previous methods can only be used
after a string object has been created
(instantiantion)
• Methods are called instance methods
• Variable.methodName(arguments)
The
Math methods can be used without
creating a Math class
• These methods are called static methods
• ClassName.methodName(arguments)
String
Length
Getting
Characters
Concatenation
Converting
Case
You
can read in a String through console
in (Scanner)
• input.next();
Reads in everything to a whitespace character
• nextLine()
Reads in the entire line of text
• Important! Do not use nextLine() after
nextByte(), int, double, etc.
To
read in a char, use nextLine(), then use
the method charAt(0); to return a
character
There are methods to Compare Strings:
• equals(s1) Returns true if the string is equal to s1
• equalsIgnoreCase(s1)
Case-insensitive version of equals
• compareTo(s1)
Returns an integer >0, =0, <0 if the string is >s1
• compareToIgnoreCase(s1)
Case insensitive verision of compareTo
equal to s1 or >s1
• StartsWith(prefix)
Returns true if the string starts with the prefix
• endsWith(suffix)
• contains(s1)
Returns true if the strings ends with the suffix
Returns true if s1 is a substring
Note: You
may be tempted to use the
comparison operator (==) in order to
compare strings
• DO NOT DO THIS!!!!!!!
• Just checks if the strings are the same object!
Do
not use relational operators(<,>,=,
etc) to compare strings!
You
may need to get substrings from your
string
• Substrings = Strings within strings
• substring(beginIndex)
Returns substring that begins with the character at
the index
Note: The first index is 0
• substring(beginIndex, endIndex)
Returns substring the begins with the character at
index, and ends at endIndex - 1
There are many different methods that find the position
(index) of a character or substring within a string
These methods will return -1 if unmatched
indexOf(ch)
Returns the index of the first occurrence of ch in the
string.
indexOf(ch, fromIndex)
Returns the index of the first occurrence of ch
in the string after fromIndex.
indexOf(s) Returns the index of the first occurrence of the string s1.
indexOf(s, fromIndex)
Returns the index of the first occurrence of the
string s1.
lastindexOf(ch)
Returns the index of the last occurrence of ch in the
string.
lastindexOf(ch, fromIndex)
Returns the index of the last occurrence of ch
in the string after fromIndex.
lastindexOf(s) Returns the index of the last occurrence of the string s1.
lastindexOf(s, fromIndex)
Returns the index of the last occurrence of the
string s1.
You
can convert a numeric string into a
number
• Use the Integer.parseInt() method
From the Integer class
Static method
• Can also use Double.parseDouble()
Static method
You
can use System.out.printf() to display
formatted output on the console
Within the text use different format
specifiers
•
•
•
•
•
•
%b
%c
%d
%f
%e
%s
boolean value
character
decimal (integer)
floating-point number
a number in scientific notation
a string
If
you put different variables in the printf,
append them after the string using
commas
• System.out.printf(“The Length is %d, area is
%f”,length, area);
You
can format different precisions using
System.out.printf()
• P147
• Let’s do some examples!
For character (c) and boolean (b)
• %[width]c
• %[width]b
• This separates out the number of spaces displayed in
the area. Value is displayed on the left
Called the width
• Ex:
%5c
Specifies 5 spaces for the character. (Adds 4 spaces, then
displays the character
%6b
Specifies 6 spaces for the result (Adds 1 extra space for false, 2
spaces for true)
For floating-point values:
• %[width].[number_of_decimals]f
• %[width].[number_of_decimals]e
• First number specifies the minimum width
• Next number specifies the number of decimals
shows
Note: The decimal is included in the width!
• Ex: %5.2f
Displays at least 5 spaces for width, and only 2 after
the decimal (if there are more digits left of the
decimal, they will be displayed
For
integers and strings:
• %[width]d
• %[width]s
• Displays a minimum width for displaying
integers or strings
• If int or string is wider than minimum, it will
automatically expand.