Java Reference
In-Depth Information
Hence, 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
))
This is a simple but useful discovery. Listing 5.10 creates a class named
RandomCharacter
with five overloaded methods to get a certain type of character randomly. You can use these
methods in your future projects.
L
ISTING
5.10
RandomCharacter.java
1
public class
RandomCharacter {
2
/** Generate a random character between ch1 and ch2 */
3
public static char
getRandomCharacter(
char
ch1,
char
ch2)
{
getRandomCharacter
4
return
(
char
)(ch1 + Math.random() * (ch2 - ch1 +
1
));
5 }
6
7
/** Generate a random lowercase letter */
8
public static char
getRandomLowerCaseLetter()
{
getRandomLower
CaseLetter()
9
return
getRandomCharacter(
'a'
,
'z'
);
10 }
11
12
/** Generate a random uppercase letter */
13
public static char
getRandomUpperCaseLetter()
{
getRandomUpper
CaseLetter()
14
return
getRandomCharacter(
'A'
,
'Z'
);
15 }
16
17
/** Generate a random digit character */
18
public static char
getRandomDigitCharacter()
{
getRandomDigit
Character()
19
return
getRandomCharacter(
'0'
,
'9'
);
20 }
21
22
/** Generate a random character */
23
public static char
getRandomCharacter()
{
getRandomCharacter()
24
return
getRandomCharacter(
'\u0000'
,
'\uFFFF'
);
25 }
26 }
Listing 5.11 gives a test program that displays 175 random lowercase letters.
L
ISTING
5.11
TestRandomCharacter.java
1
public class
TestRandomCharacter {
2
/** Main method */
3
public static void
main(String[] args) {
4
final int
NUMBER_OF_CHARS =
175
;
constants
5
final int
CHARS_PER_LINE =
25
;
6
7
// Print random characters between 'a' and 'z', 25 chars per line
8
for
(
int
i =
0
; i < NUMBER_OF_CHARS; i++) {
9
char
ch =
RandomCharacter.getRandomLowerCaseLetter()
;
lower-case letter
10
if
((i +
1
) % CHARS_PER_LINE ==
0
)
11 System.out.println(ch);
12
else
13 System.out.print(ch);
14 }
15 }
16 }