Transcript 11장

11장. 패키지와
주요 클래스
public class SumTest {
public static void main(String a1[])
{
int a, b, sum;
a = Integer.parseInt(a1[0]);
b = Integer.parseInt(a1[1]);
sum = a + b ; // 두 수를 더하는 부분입니다
System.out.println("두수의 합은 " + sum + "입니다");
}
}
1
학습목표
패키지의 개념과 사용방법을 학습한다.
자바의 기본 패키지인 java.lang 패키지의 클래스를 학습한다.
주요 포장(Wrapper) 클래스를 학습한다.
String 클래스와 StringBuffer 클래스의 메소드 사용방법을 학습한다.
유틸리티 패키지의 Random, Arrays 클래스 사용 방법을 학습한다.
2
 목차
 section 1 패키지 개요와 패키지의 사용
 section 2 java.lang 패키지의 개요
 section 3 Object 클래스
 section 4 포장(Wrapper) 클래스
-
4-1 Integer 클래스
-
4-2 Character 클래스
-
4-3 Byte 클래스
-
4-4 Short 클래스
-
4-5 Long 클래스
3
 목차
 section 5 문자열의 개요
 section 6 String 클래스
-
6-1 문자열의 길이
-
6-2 문자열에서의 문자 추출
-
6-3 문자열 비교
-
6-4 문자열 탐색
-
6-5 문자열의 변환
 section 7 StringBuffer 클래스
 section 8 유틸리티 패키지 개요
 section 9 Random 클래스
 section 10 Arrays 클래스
4
1 패키지 개요와 패키지의 사용
 패키지
-
비슷한 종류의 클래스나 인터페이스들을 하나의 집단으로 묶어 놓은 것
11장. 패키지와 주요 클래스
5
1 패키지 개요와 패키지의 사용
 JDK에서 제공되는 주요 패키지
패키지 이름
설명
java.lang
프로그램에서 지정하지 않아도 묵시적으로 포함되는 패키지로서, 자바 프로그램의 기본적인
기능을 제공하는 패키지이다. 자바 프로그램의 최상위 클래스인java.lang.Object 클래스가 이
패키지에 포함되어 있다.
java.util
자바 프로그래밍에 유용한 유틸리티 클래스를 포함하는 패키지이다.
java.io
입출력 기능을 제공하는 패키지로서 스트림을 다양한 형태로 처리할 수 있는 기능을 제공한
다.
java.net
네트워킹과 관련된 기능을 제공하는 패키지로서 telnet, ftp, http와 같은 프로토콜을 사용할
수 있는 클래스를 제공한다.
java.awt
그래피컬 사용자 인터페이스(GUI)를 구축하기 위한 다양한 컴포넌트를 제공하는 패키지로서
사용자는 이 패키지를 이용하여 원하는 인터페이스를 구축할 수 있다.
java.awt.event
java.applet
11장. 패키지와 주요 클래스
AWT 컴포넌트들의 이벤트를 제어하는 패키지이다.
웹 검색기에서 수행되는 애플릿 프로그램을 작성하기 위해 필요한 클래스를 제공하는 패키지
6
1 패키지 개요와 패키지의 사용
 패키지를 사용하는 가장 일반적인 방법
-
import문을 사용
import java.util.Date;
......
Date date = new Date();
......
java.util.Date 클래스만을 사용
import java.util.*;
java.util 패키지의 모든 클래스를 사용
.......
Date date = new Date();
Random random = new Random();
Stack stack = new Stack();
Hashtable hashtable = new Hashtable();
...........
............
java.util 패키지
11장. 패키지와 주요 클래스
7
2 java.lang 패키지의 개요
 java.lang 패키지
-
“import” 문을 사용하여 포함시키지 않아도 자동적으로 포함되는 패키지
11장. 패키지와 주요 클래스
8
2 java.lang 패키지의 개요
 java.lang 패키지의 클래스
345 page
11장. 패키지와 주요 클래스
9
3 Object 클래스
 java.lang.Object 클래스
-
이 패키지의 최상위 클래스이면서 모든 자바 프로그램의 최상위 클래스
11장. 패키지와 주요 클래스
10
3 Object 클래스
 java.lang.Object 클래스의 주요 메소드
메소드
Ojbect clone()
boolean equals (Objec
t object)
void finalize()
설명
객체를 복제하기 위해 사용하는 메소드
두 개의 객체가 같은지를 비교하여 같으면 true, 아니면 false를 반환
자바에서는 객체가 더 이상 사용되지 않으면 자동적으로 쓰레기 수집(garbage collection)기
능을 수행한다. finalize() 메소드는 쓰레기 수집 기능이 수행되기 전에 호출되며 객체가 점유
하고 있던 자원들을 해제하는데 사용되는 메소드
Class getClass()
객체의 클래스 명을 Class형의 객체로 반환
int hashCode()
호출한 객체와 연관된 hash 코드를 얻는다.
String toString()
현재 객체의 문자열 표현을 반환한다.
void notify()
void notifyAll()
void wait()
11장. 패키지와 주요 클래스
대기 중인 스레드 중 하나의 스레드를 다시 시작시킨다.
대기 중인 모든 스레드를 다시 시작시킨다.
스레드의 실행을 중지하고 대기 상태로 간다.
11
4 포장(Wrapper) 클래스
 기본 자료형을 객체로 사용한다는 의미
-
기본 자료형과 관련된 클래스를 제공한다는 의미
 포장(wrapper) 클래스
-
기본 자료형 객체를 지원하기 위해, 각각의 자료형과 관련된 클래스들을 제공
class ValueandWrapper {
public static void main(String args[]) {
int num1 = 20;
Integer num2 = 30;의 형태로 사용 가능
Integer num2 = new Integer(30)
int total = num1 + num2.intValue();
Integer 클래스의 intValue() 메소드로 정수 값을 추출
System.out.println("두수의 합은 : " + total);
}
}
Integ
Integ
11장. 패키지와 주요 클래스
12
4 포장(Wrapper) 클래스
4-1
Integer 클래스
 Integer 클래스
-
정수 값을 포장하는 클래스
형식
11장. 패키지와 주요 클래스
nteger(int n)
nteger(String str)
13
4 포장(Wrapper) 클래스
4-1
Integer 클래스
 Integer 클래스의 주요 메소드
타입
byte byteValue()
double doubleValue()
float floatValue()
int intValue()
설명
현 객체의 값을 byte 값으로 변환하여 반환
현 객체의 값을 double 값으로 변환하여 반환
현 객체의 값을 float 값으로 변환하여 반환
현 객체의 값을 int 값으로 변환하여 반환
long longValue()
현 객체의 값을 long 값으로 변환하여 반환
short shortValue()
현 객체의 값을 short 값으로 변환하여 반환
String toString()
boolean equals(Object IntegerObj)
현 객체의 값을 문자열로 변환하여 반환
현 객체와 IntegerObj로 지정된 객체의 값이 같으면 true,
다르면 false를 반환
static Integer decode(String str)
throws NumberFormatException
문자열 str에 해당하는 Integer 객체를 반환
static int parseInt(String str)
throws NumberFormatException
문자열 str에 해당하는 int 값을 반환
11장. 패키지와 주요 클래스
14
4 포장(Wrapper) 클래스
4-1
Integer 클래스
 Integer 클래스의 주요 메소드
타입
static int parseInt(String str, int radix)
throws NumberFormatException
설명
문자열 str에 해당하는 int 값을 radix로 지정된 진법으로 반환
static String toBinaryString(int num)
num으로 지정된 정수 값의 2진법 표현을 가지는 String 객체를 반환
static String toHexString(int num)
num으로 지정된 정수 값의 16진법 표현을 가지는 String 객체를 반환
static String toOctalString(int num)
num으로 지정된 정수 값의 8진법 표현을 가지는 String 객체를 반환
static Integer valueOf(String str)
throws NumberFormatException
문자열 str에 해당하는 Integer 객체를 반환
static Integer valueOf(String str, int radix
) throws NumberFormatException
11장. 패키지와 주요 클래스
문자열 str에 해당하는 Integer 객체를 radix로 지정된 진법으로 반환
15
4 포장(Wrapper) 클래스
4-1
Integer 클래스
 실습예제
IntegerTest1.java
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
public class IntegerTest1 {
public static void main(String args[]) {
Integer num1 = new Integer(13);
Integer 객체 생성
직접 값을 지정하여 객체 생성
Integer num2 = 25;
int hap = num1.intValue() + num2.intValue();
두 객체가 가진
System.out.println("num1이 포장하고 있는 정수는 : " 값을 더한다
+ num1.intValue());
System.out.println("num2가 포장하고 있는 정수는 : "
+ num2.intValue());
System.out.println("두수의 합 = " + hap);
System.out.println("합의 2진 표현 : "
+ Integer.toBinaryString(hap));
클래스 메소드 호출
System.out.println("합의 8진 표현 : "
+ Integer.toOctalString(hap));
System.out.println("합의 16진 표현 : "
+ Integer.toHexString(hap));
11장. 패키지와 주요 클래스
16
4 포장(Wrapper) 클래스
4-1
Integer 클래스
 실습예제
IntegerTest1.java
17
18
19
20
21
22
System.out.println("if(num1 == num2) 는 : "
+ num1.equals(num2));
Integer num3 = new Integer("444");
System.out.println("문자열 '444'의 값은 : " + num3.intValue());
}
}
11장. 패키지와 주요 클래스
17
4 포장(Wrapper) 클래스
4-1
Integer 클래스
 프로그램 설명
-
00
: new 연산자를 사용하지 않고, 직접 값을 지정하여 객체를 생성할 수 있다.
-
00
: 객체가 가진 값을 더하기 위해 intValue() 메소드를 이용하여 정수 값을 가져와 덧셈을수
행하였다.
-
00~00
: 클래스 이름을 이용하여 클래스 메소드를 호출하였다. 정수 값을 2진수, 8진수, 16진
수로 나타내었다.
-
00
: 문자열을 이용하여 Integer 객체를 생성하였다. Integer 클래스는 문자열로 Integer 객체
를 생성하는 생성자를 제공하고 있다.
11장. 패키지와 주요 클래스
18
4 포장(Wrapper) 클래스
4-1
11장. 패키지와 주요 클래스
Integer 클래스
19
4 포장(Wrapper) 클래스
4-2
Character 클래스
 Character 클래스
-
char형의 값을 저장
형식
11장. 패키지와 주요 클래스
Character(char c)
20
4 포장(Wrapper) 클래스
4-2
Character 클래스
 Character 클래스의 주요 메소드
메소드
설명
static boolean isDefined(char ch)
ch가 Unicode이면 true 아니면 false를 반환
static boolean isDigit(char ch)
ch가 숫자이면 true 아니면 false를 반환
static boolean isLetter(char ch)
ch가 문자이면 true 아니면 false를 반환
static boolean isLetterOrDigit(char ch)
ch가 문자 또는 숫자이면 true 아니면 false를 반환
static boolean isLowerCase(char ch)
ch가 소문자이면 true 아니면 false를 반환
static boolean isSpace(char ch)
ch가 공백문자이면 true 아니면 false를 반환
static boolean isUpperCase(char ch)
ch가 대문자이면 true 아니면 false를 반환
static char toLowerCase(char ch)
ch로 지정된 문자를 소문자로 변환하여 반환
static char toUpperCase(char ch)
ch로 지정된 문자를 대문자로 변환하여 반환
11장. 패키지와 주요 클래스
21
4 포장(Wrapper) 클래스
4-2
Character 클래스
 실습예제
CharacterTest1.java
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
class CharacterTest1 {
public static void main(String args[]) {
char a[] = {'a', ' ', '?', 'C', '5', 'A'};
문자 배열을 선언
for(int i=0; i<a.length; i++) {
System.out.println("a[" + i + "] 번째 요소 = " + a[i]);
if(Character.isDigit(a[i]))
System.out.println(" 숫자입니다.");
if(Character.isLetter(a[i]))
System.out.println(" 문자입니다.");
if(Character.isSpace(a[i]))
System.out.println(" 공백문자입니다.");
if(Character.isUpperCase(a[i]))
System.out.println(" 대문자입니다.");
if(Character.isLowerCase(a[i]))
System.out.println(" 소문자입니다.");
}
11장. 패키지와 주요 클래스
각 문자를
클래스
메소드로
검사
22
4 포장(Wrapper) 클래스
4-2
Character 클래스
 실습예제
CharacterTest1.java
17
18
19
20
21
22
23
if(Character.isDefned(a[0]))
유니코드인지 검사
{
System.out.println("a[0] 번째 요소 = " + a[0]);
System.out.println(" 유니코드입니다.");
}
}
}
 프로그램 설명
-
03
: 문자 배열을 선언하였다.
-
04~16
: 문자 배열의 각 문자를 Character 클래스의 클래스 메소드를 이용하여 검사하여 결과
를 출력하였다.
-
17
: 문자 배열의 첫 번째 문자가 유니코드인지 검사하는 isDefined() 메소드를 수행하였다.
11장. 패키지와 주요 클래스
23
4 포장(Wrapper) 클래스
4-2
11장. 패키지와 주요 클래스
Character 클래스
24
4 포장(Wrapper) 클래스
4-3
Byte 클래스
 Byte 클래스
-
byte형의 값을 저장
-
MAX_VALUE와 MIN_VALUE 상수를 제공
형식
11장. 패키지와 주요 클래스
Byte(byte b)
Byte(String s) throws NumberFormatException
25
4 포장(Wrapper) 클래스
4-3
Byte 클래스
 Byte 클래스의 주요 메소드
메소드
설명
byte byteValue()
현 객체의 값을 byte 값으로 변환하여 반환
double doubleValue()
현 객체의 값을 double 값으로 변환하여 반환
float floatValue()
현 객체의 값을 float 값으로 변환하여 반환
int intValue()
현 객체의 값을 int 값으로 변환하여 반환
long longValue()
현 객체의 값을 long 값으로 변환하여 반환
short shortValue()
현 객체의 값을 short 값으로 변환하여 반환
String toString()
현 객체의 값을 문자열로 변환하여 반환
boolean equals(Object BytesObj)
현 객체가 가지고 있는 값과 BytesObj로 지정된 객체가가지고 있는 값이 같
으면 true, 다르면 false를 반환
static Byte decode(String str) throws
NumberFormatException
static byte parseByte(String str)
throws NumberFormatException
static byte parseByte(String str, int radix)
throws NumberFormatException
11장. 패키지와 주요 클래스
str로 지정된 문자열에 해당하는 Byte 객체를 반환
str로 지정된 문자열에 해당하는 byte 값을 반환
str로 지정된 문자열에 해당하는 byte 값을 radix로 지정된 진법으로 반환
26
4 포장(Wrapper) 클래스
4-3
Byte 클래스
 실습예제
ByteTest.java
01
02
03
04
05
06
07
08
09
10
11
public class ByteTest {
public static void main(String args[]) {
Byte b1 = new Byte("126");
"126" 문자열로 Byte 객체 생성
byte b2 = Byte.parseByte("1");
byte형 변수 초기화(클래스 메소드 이용)
byte btotal1 = (byte)(b1.byteValue() + b2);
정수(int) 연산 수행 후 (byte) 형변환
System.out.println("byte 덧셈의 결과 1 : " + btotal1);
Byte b3 = 1;
직접 숫자를 지정하여 Byte 객체 생성
byte btotal2 = (byte)(b3.byteValue() + btotal1);
System.out.println("byte 덧셈의 결과 2 : " + btotal2);
}
}
11장. 패키지와 주요 클래스
27
4 포장(Wrapper) 클래스
4-3
Byte 클래스
 프로그램 설명
-
03
: Byte 클래스의 객체를 문자열 값을 지정하여 생성하였다. 이때 지정되는 문자열은byte 값
이 표현 가능한 범위의 문자열이어야 한다. “128”이나 “kim”과 같은 문자열로는 Byte 객체를 생
성할 수 없다.
-
04
: Byte 클래스의 클래스 메소드를 이용하여 byte형의 변수를 초기화하였다. 이 경우에도 문
자열은 byte 값이 표현할 수 있는 범위 내에 있어야 한다.
-
05
: 자바는 모든 연산을 int형으로 수행한다. 두 개의 피연산자가 모두 byte형이라 자바는 int
형 덧셈을 수행하므로, 덧셈의 결과를 byte형의 변수에 저장하기 위해서는 반드시 (byte)로 형
변환을 수행해야 한다.
-
07
: 직접 숫자를 지정하여 Byte 객체를 생성할 수 있다.
-
09
: 출력문에서 -128이 출력된 이유는 덧셈의 결과가 128이 되어 8번째 비트가 1이 되었기
때문이다. byte형으로 출력되면 8번째 비트가 1일 경우 음수로 취급되어 -128이 출력되게 된다
.
11장. 패키지와 주요 클래스
28
4 포장(Wrapper) 클래스
4-3
11장. 패키지와 주요 클래스
Byte 클래스
29
4 포장(Wrapper) 클래스
4-4
Short 클래스
 Short 클래스
-
short형의 값을 저장
-
MAX_VALUE와 MIN_VALUE 상수를 제공
형식
11장. 패키지와 주요 클래스
Short(short s)
Short(String str) throws NumberFormatException
30
4 포장(Wrapper) 클래스
4-4
Short 클래스
 Short 클래스의 주요 메소드
메소드
설명
byte byteValue()
현 객체의 값을 byte 값으로 변환하여 반환
double doubleValue()
현 객체의 값을 double 값으로 변환하여 반환
short longValue()
현 객체의 값을 long 값으로 변환하여 반환
float floatValue()
현 객체의 값을 float 값으로 변환하여 반환
int intValue()
현 객체의 값을 int 값으로 변환하여 반환
short shortValue()
현 객체의 값을 short 값으로 변환하여 반환
String toString()
현 객체의 값을 문자열로 변환하여 반환
boolean equals(Object ShortObj)
현 객체가 가지고 있는 값과 ShortObj로 지정된 객체가
가지고 있는 값이 같으면 true, 다르면 false를 반환
static Short decode(String str) throws
NumberFormatException
static short parseShort(String str) throws
NumberFormatException
static short parseShort(String str, int
radix) throws NumberFormatException
11장. 패키지와 주요 클래스
str로 지정된 문자열에 해당하는 Short 객체를 반환
str로 지정된 문자열에 해당하는 short 값을 반환
str로 지정된 문자열에 해당하는 short 값을 radix로 지정
된 진법으로 반환
31
4 포장(Wrapper) 클래스
4-4
Short 클래스
 실습예제
ShortTest.java
01
02
03
04
05
06
07
08
public class ShortTest {
public static void main(String args[]) {
숫자를 short형으로 형변환하여
Short s1 = new Short((short)30);
객체 생성
short s2 = Short.parseShort("20");
short stotal = (short)(s1.intValue() + s2);
System.out.println("short 덧셈의 결과 : " + stotal);
}
}
11장. 패키지와 주요 클래스
32
4 포장(Wrapper) 클래스
4-4
Short 클래스
 프로그램 설명
-
03
: Short 클래스로부터 직접 숫자를 지정하여 객체를 생성하는 경우에는 숫자를 short형으
로 형변환해야 한다. 자바에서 모든 수식의 계산은 int형으로 수행한다.
11장. 패키지와 주요 클래스
33
4 포장(Wrapper) 클래스
4-5
Long 클래스
 Long 클래스
-
long형의 값을 저장
-
MAX_VALUE와 MIN_VALUE 상수를 제공
형식
11장. 패키지와 주요 클래스
Long(long l)
Long(String str) throws NumberFormatException
34
4 포장(Wrapper) 클래스
4-5
Long 클래스
 Long 클래스의 주요 메소드
메소드
설명
byte byteValue()
현 객체의 값을 byte 값으로 변환하여 반환
double doubleValue()
현 객체의 값을 double 값으로 변환하여 반환
float floatValue()
현 객체의 값을 float 값으로 변환하여 반환
short shortValue()
현 객체의 값을 short 값으로 변환하여 반환
int intValue()
현 객체의 값을 int 값으로 변환하여 반환
long longValue()
현 객체의 값을 long 값으로 변환하여 반환
String toString()
현 객체의 값을 문자열로 반환
boolean equals(Object LongObj)
현 객체가 가지고 있는 값과 LongObj로 지정된 객체가
가지고 있는 값이 같으면 true, 다르면 false를 반환
static long parseLong(String str) throws
NumberFormatException
static long parseLong(String str, int radix)
throws NumberFormatException
static String toBinaryString(long num)
11장. 패키지와 주요 클래스
str로 지정된 문자열에 해당하는 long 값을 반환
str로 지정된 문자열에 해당하는 long 값을 radix로 지정
된 진법으로 반환
num의 2진 표현을 문자열로 반환
35
4 포장(Wrapper) 클래스
4-5
Long 클래스
 Long 클래스의 주요 메소드
메소드
설명
static String toHexString(long num)
num의 16진 표현을 문자열로 반환
static String toOctalString(long num)
num의 8진 표현을 문자열로 반환
static Long valueOf(String str) throws
NumberFormatException
str로 지정된 값을 가지는 Long 객체를 반환
11장. 패키지와 주요 클래스
36
4 포장(Wrapper) 클래스
4-5
Long 클래스
 실습예제
LongTest.java
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
public class LongTest {
public static void main(String args[]) {
Long a = new Long(Long.MAX_VALUE);
Long 최댓값 객체 생성
System.out.println
long 최댓값 출력
("Long의 최댓값(10진법) : " + a.longValue());
System.out.println
("Long의 최댓값(2진법) : " + Long.toBinaryString(a.longValue()));
System.out.println
("Long의 최댓값(8진법) : " + Long.toOctalString(a.longValue()));
System.out.println
("Long의 최댓값(16진법) : " + Long.toHexString(a.longValue()));
System.out.println
("==========================================");
a = new Long(Long.MIN_VALUE);
Long 최솟값 객체 생성
System.out.println
long 최솟값 출력
("Long의 최솟값(10진법) : " + a );
11장. 패키지와 주요 클래스
37
4 포장(Wrapper) 클래스
4-5
Long 클래스
 실습예제
LongTest.java
17
18
19
20
21
22
23
24
System.out.println
("Long의 최솟값(2진법) : " + Long.toBinaryString(a));
System.out.println
("Long의 최솟값(8진법) : " + Long.toOctalString(a));
System.out.println
("Long의 최솟값(16진법) : " + Long.toHexString(a));
}
}
 프로그램 설명
-
03
: Long 클래스에 제공되는 상수 MAX_VALUE를 이용하여 객체를 생성하였다. 64비트로 표
현 가능한 최댓값은 9223372036854775807이다
-
04~11
: 최댓값을 2진수, 8진수, 16진수로 나타내었다.
11장. 패키지와 주요 클래스
38
4 포장(Wrapper) 클래스
4-5
11장. 패키지와 주요 클래스
Long 클래스
39
5 문자열의 개요
 문자열(String)
-
자바 프로그램에서 많이 사용되는 요소
-
자바는 문자열을 객체로 취급
-
상수 문자열을 사용할 때 : String 클래스
-
계속 변하는 문자열을 사용할 때 : StringBuffer 클래스
11장. 패키지와 주요 클래스
40
6 String 클래스
 String 클래스
-
변하지 않는 문자열
-
상수 문자열을 위해 사용
-
문자열을 생성하고 조작할 수 있도록 다양한 생성자와 메소드를 제공
형식
11장. 패키지와 주요 클래스
String()
String(char chars[])
String(char chars[], int startindex, int numChars)
String(String strObj)
String(byte asciiChars[], byte highOrderByte)
String(byte asciiChars[], byte highOrderByte, int startindex, int numChars)
String(byte asciiChars[])
String(byte asciiChars[], int startIndex, int numChars)
41
6 String 클래스
 String 클래스의 주요 메소드
메소드
설명
int length()
문자열의 길이를 반환
char charAt(int I)
i번째 문자를 반환
void getChars(int sourceStart, int
sourceEnd, char target[], int targetStart)
문자열의 일부를 문자 배열(target[])로 작성
byte[] getBytes()
현재의 문자열을 바이트 배열로 반환
boolean equals(Object str)
boolean equalsIgnoreCase(String str)
현재의 문자열과 str로 지정된 문자열이 같으면 true, 다
르면 false를 반환
현재의 문자열과 str로 지정된 문자열이 같으면 true, 다
르면 false를 반환. 단, 비교 시 대소문자를 무시
boolean startsWith(String str)
현재의 문자열이 str로 시작하면 true, 아니면 false를 반환
boolean endsWith(String str)
현재의 문자열이 str로 끝나면 true, 아니면 false를 반환
int compareTo(String str)
int indexOf(char ch)
int indexOf(String str)
11장. 패키지와 주요 클래스
두 개의 문자열을 비교하여 결과로 양수, 음수, 0의 값
을 반환
현재의 객체가 가지고 있는 문자열 내에서 ch로 지정된
문자의 첫 번째 인덱스를 반환
문자열 str의 첫 번째 인덱스를 반환
42
6 String 클래스
 String 클래스의 주요 메소드
메소드
설명
int indexOf(int ch, int startIndex)
인덱스 startIndex 이후의 문자 ch의 첫 번째 인덱스를 반환
int indexOf(String str, int startIndex)
인덱스 startIndex 이후의 문자열 str의 첫 번째 인덱스 를 반환
String intern()
문자열의 canonical 문자열을 반환
int lastindexOf(char ch)
문자 ch의 마지막 인덱스를 반환
int lastindexOf(String str)
문자열 str의 마지막 인덱스를 반환
int lastindexOf(int ch, int startIndex)
인덱스 startIndex 이전의 문자 ch의 마지막 인덱스를 반환
int lastindexOf(String str, int startIndex)
인덱스 startIndex 이전의 문자열 str의 마지막 인덱스를 반환
String substring(int startindex)
startIndex로부터 시작하는 부분 문자열을 반환
String substring(int startIndex, int endIndex)
startIndex와 endIndex 사이의 부분 문자열을 반환
String concat(String str)
현재의 문자열에 str로 지정된 문자열을 결합
String replace(char original,
char replacement)
original로 지정된 문자를 replacement로 지정된 문자로 대치
11장. 패키지와 주요 클래스
43
6 String 클래스
 String 클래스의 주요 메소드
메소드
설명
String trim()
문자열의 앞뒤 공백(whitespace)을 제거
static String valueOf(double num)
num을 문자열로 변환하여 반환
static String valueOf(long num)
num을 문자열로 변환하여 반환
static String valueOf(Object obj)
객체가 가지고 있는 데이터를 문자열로 변환하여 반환
static String valueOf(char chars[])
문자 배열을 문자열로 변환하여 반환
static String valueOf(char chars[], int startIndex, int numChars) 문자 배열의 일부를 문자열로 변환하여 반환
String toLowerCase()
문자열을 모두 소문자로 변환하여 반환
String toUpperCase()
문자열을 모두 대문자로 변환하여 반환
11장. 패키지와 주요 클래스
44
6 String 클래스
 실습예제
StringTest1.java
01
02
03
04
05
06
07
08
09
10
11
12
13
14
public class StringTest1 {
public static void main(String args[]) {
char a[] = { 'C','o','m','p','u','t','e','r' };
String s1 = new String(a);
배열을 이용하여 객체 생성
String s2 = new String(a,3,2);
배열의 특정 부분을 이용하여 객체 생성
String s3 = new String("배우기 쉬운 자바");
String s4 = "canonical 문자열";
문자열을 지정하여 객체 생성
System.out.println("문자열 s1 : " + s1);
System.out.println("문자열 s1의 길이 : " + s1.length());
문자열의 길이 출력
System.out.println("문자열 s2 : " + s2);
System.out.println("문자열 s3 : " + s3);
System.out.println("문자열 s4 : " + s4);
}
}
11장. 패키지와 주요 클래스
45
6 String 클래스
 프로그램 설명
-
04
: 문자 배열을 이용하여 String 객체를 생성하였다.
-
05
: 문자 배열의 일부분을 이용하여 String 객체를 생성하였다.
-
07
: 문자열을 직접 지정하여 String 객체를 생성하였다. 이러한 문자열을 canonical 문자열이
라고 한다.
-
09
: String 클래스의 length() 메소드를 이용하여 문자열의 길이를 출력하고 있다.
11장. 패키지와 주요 클래스
46
6 String 클래스
 canonical 문자열
-
자바는 편리한 문자열의 사용을 위해 단축(shorthand) 초기화를 허용
-
단축 초기화 과정을 거쳐 생성된 문자열
String name = "kim"
name = "park"
11장. 패키지와 주요 클래스
47
6 String 클래스
 실습예제
StringTest2.java
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
public class StringTest2 {
public static void main(String args[]) {
String s1 = "Java Korea";
canonical 문자열 객체 생성
String s2 = new String("Java Korea");
일반 문자열 객체 생성
String s3 = s2.intern();
intern() 메소드를 이용하여
canonical 문자열 객체 생성
String s4 = "Java Korea";
String s5 = new String("Java Korea");
System.out.println("s1과 s2가 같은가? : " + (s1 == s2));
System.out.println("s2와 s3가 같은가? : " + (s2 == s3));
System.out.println("s1과 s3가 같은가? : " + (s1 == s3));
System.out.println("s1과 s4가 같은가? : " + (s1 == s4));
System.out.println("s2와 s5가 같은가? : " + (s2 == s5));
System.out.println("s1 : " + s1);
System.out.println("s2 : " + s2);
System.out.println("s3 : " + s3);
System.out.println("s4 : " + s4);
System.out.println("s5 : " + s5);
}
}
11장. 패키지와 주요 클래스
48
6 String 클래스
 프로그램 설명
-
03
: 문자열을 직접 지정하여 canonical 문자열 객체를 생성하였다.
-
04
: new 문장을 사용하여 일반 문자열 객체를 생성하였다.
-
05
: String 클래스의 intern() 메소드를 사용하여 canonical 문자열 객체를 생성하였다.
-
10~11
: canonical 문자열을 저장하고 있는 객체 변수의 값(주소)이 같은가를 비교하였다. 두
객체 변수는 같은 기억장소를 가리키고 있다.
-
12
: 같은 문자열을 가진 일반 객체가 같은가를 비교하였다. 두 개의 객체는 서로 다른 객체로
생성되었기 때문에 false를 출력한다.
11장. 패키지와 주요 클래스
49
6 String 클래스
11장. 패키지와 주요 클래스
50
6 String 클래스
6-1
문자열의 길이
 문자열 길이 메소드
형식
int length()
char chars[] = {'K', 'o', 'r', 'e', 'a'};
String s = new String(chars);
System.out.println(s.length());
11장. 패키지와 주요 클래스
51
6 String 클래스
6-2
문자열에서의 문자 추출
 문자열 추출 메소드
-
charAt() 메소드 : 문자열의 특정 위치에 있는 문자를 반환
-
getChars() 메소드 : 문자열의 일부를 문자 배열로 제공
형식
11장. 패키지와 주요 클래스
char charAt(int i)
void getChars(int sourceStart, int sourceEnd, char target[], int targetStart)
52
6 String 클래스
6-2
문자열에서의 문자 추출
 시습예제
StringExtract.java
01
02
03
04
05
06
07
08
09
public class StringExtract {
public static void main(String args[]) {
String a1 = "WorldCup Korea";
System.out.println("추출된 문자 : " + a1.charAt(2));
char buff[] = new char[3];
a1.getChars(5,8,buff,0);
문자열의 5-7번 문자를 출력
System.out.println(buff);
}
}
11장. 패키지와 주요 클래스
문자열의 2번째(0부터 시작)
문자를 출력
53
6 String 클래스
6-2
문자열에서의 문자 추출
 프로그램 설명
-
04
: charAt() 메소드는 문자열에서 특정 위치의 문자를 반환하는 메소드이다.
-
06
: getChars() 메소드는 문자열의 지정된 위치에 있는 다수 개의 문자를 문자 배열로 반환하
는 메소드이다.
11장. 패키지와 주요 클래스
54
6 String 클래스
6-3
문자열 비교
 문자열 비교 메소드
-
equals() 메소드 : 현재의 문자열과 str로 지정된 문자열이 같으면 true, 다르면 false를 반환
-
equalsIgnoreCase() 메소드 : equals() 메소드와 같으나 대소문자를 구분하지 않고 비교
-
compareTo() 메소드 : 두 개의 문자열을 비교하여 문자열이 다른 문자열보다 작으면 음수
값을, 같으면 0 값을, 크면 양수 값을 반환
-
startsWith(), endsWith() 메소드 : str로 지정된 문자열로 시작하거나 끝나면 true를 그렇지
않으면 false를 반환
형식
11장. 패키지와 주요 클래스
boolean equals(Object str)
boolean equalsIgnoreCase(String str)
int compareTo(String str)
boolean startsWith(String str)
boolean endsWith(String str)
55
6 String 클래스
6-3
문자열 비교
 실습예제
EqualsTest.java
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
class EqualsTest {
public static void main(String args[]) {
String s1 = "알기쉽다" ;
String s2 = "Apple";
String s3 = "APPLE";
String s4 = new String("알기쉽다");
System.out.println
equals() 메소드로 비교
("s1과 s2가 동일한 문자열? : " + s1.equals(s2));
System.out.println
대소문자 무시 비교
("s2와 s3가 동일한 문자열?(대소문자 무시) : " +
s2.equalsIgnoreCase(s3));
if (s1 == s4)
객체 변수가 가진 값(주소) 비교
System.out.println
("s1과 s4를 \"==\" 연산자로 비교한 결과는 같다");
else
11장. 패키지와 주요 클래스
56
6 String 클래스
6-3
문자열 비교
 실습예제
EqualsTest.java
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
System.out.println
("s1과 s4를 \"==\" 연산자로 비교한 결과는 같지 않다");
객체 변수가 지정하는 문자열 비교
if (s1.equals(s4))
System.out.println
("s1과 s4를 \"equals()\" 메소드로 비교한 결과는 같다");
else
System.out.println
("s1과 s4를 \"equals()\" 메소드로 비교한 결과는 같지 않다");
System.out.println
문자열 시작과 끝을 비교
("s1문자열은 \"알기\"로 시작하는가? " +
s1.startsWith("알기"));
System.out.println
("s1문자열은 \"ple\"로 끝나는가? " + s2.endsWith("ple"));
}
}
11장. 패키지와 주요 클래스
57
6 String 클래스
6-3
문자열 비교
 프로그램 설명
-
07, 08
: 두 개의 문자열을 equals() 메소드로 비교한다. 두 객체 변수가 가리키는 문자열의 내
용을 비교하는 메소드이다.
-
09~11
-
12
: 문자열 비교 시 대소문자를 무시하고 비교한다.
: “==”연산자를 사용하여 객체 변수를 비교하면 객체 변수가 가진 값을 비교한다. 객체 변
수는 객체가 저장된 주소를 가지므로 주소가 동일한지를 비교하게 된다.
-
18
: equals() 메소드는 객체 변수가 가리키는 객체의 내용이 같은지를 비교하는 메소드이다.
-
24~28
: startsWith() 메소드와 endsWith() 메소드는 문자열이 특정 문자로 시작하고 끝나는
가를 비교해서 이진값을 반환하는 메소드이다.
11장. 패키지와 주요 클래스
58
6 String 클래스
6-3
11장. 패키지와 주요 클래스
문자열 비교
59
6 String 클래스
6-3
문자열 비교
 실습예제
CompareTest.java
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
public class CompareTest {
문자열의 배열을 클래스 객체 변수로 선언
static String array1[] = {"IMF", "제주도", "자바도사",
"한글나라", "Computer", "모카", "JAVA", "인터넷탐색",
"초롱초롱", "come", "바람", "스크립터", "군고구마", "도서",
"their", "country" };
public static void main(String args[]) {
System.out.println("======= 정렬 전 데이터 ==========");
for(int k = 0; k < array1.length; k++)
정렬 전 데이터를 출력
System.out.print(array1[k] + " ");
System.out.println();
System.out.println("======= 정렬 후 데이터 ==========");
for(int i = 0; i < array1.length; i++) {
for(int j = i + 1; j < array1.length; j++) {
if(array1[i].compareTo(array1[ j]) > 0) {
두 개의 문자열 비교
String t = array1[i];
두 개의 문자열 교환
array1[i] = array1[ j];
array1[ j] = t;
11장. 패키지와 주요 클래스
60
6 String 클래스
6-3
문자열 비교
 실습예제
CompareTest.java
18
19
20
21
22
23
}
}
System.out.print(array1[i] + " ");
}
}
}
11장. 패키지와 주요 클래스
61
6 String 클래스
6-3
문자열 비교
 프로그램 설명
-
02
: 문자열의 배열을 클래스 객체 변수로 선언하였다. 클래스 변수로 선언하는 이유는 이변
수를 사용할 mail() 메소드가 클래스 메소드이기 때문이다. 클래스 메소드에서 사용할 수 있는
외부 변수들은 반드시 클래스 변수이어야 한다.
-
08, 09
: 반복문을 이용하여 정렬하기 전의 데이터들을 출력하였다.
-
09~10
: 두 개의 반복문을 이용하여 배열의 요소를 비교한다.
-
14
: 두 개의 요소를 비교하여 결과 값이 0보다 크면 앞의 값이 더 크다는 의미이다. 앞의 값이
더 크다는 의미는 알파벳 순으로 뒤에 있다는 의미이기 때문에 두 값을 교환한다. 내포된 반복
문을 1번 반복하면, 배열의 가장 첫 번째 값은 가장 작은 값이 된다. 계속해서 두 번째 값과 세 번
째 값을 비교하여 다시 내포된 반복문이 한 번 더 수행되면, 배열의 두 번째 값은 배열에서 두 번
째로 작은 값이 된다. 이 부분이 반복 수행되면 모든 정렬이 완료된다.
11장. 패키지와 주요 클래스
62
6 String 클래스
6-3
11장. 패키지와 주요 클래스
문자열 비교
63
6 String 클래스
6-4
문자열 탐색
 문자열 탐색 메소드
-
indexOf() 메소드 : 문자열에서 특정 문자나 문자열을 탐색하여 위치를 반환하는 메소드
-
lastindexOf() 메소드 : 문자열에서 특정 문자나 문자열을 마지막 위치부터 거꾸로 탐색하여
위치를 반환하는 메소드
형식
11장. 패키지와 주요 클래스
int indexOf(String str)
int indexOf(int ch, int startIndex)
int indexOf(String str, int startIndex)
int lastindexOf(String str)
int lastindexOf(int ch, int startIndex)
int lastindexOf(String str, int startIndex)
64
6 String 클래스
6-4
문자열 탐색
 실습예제
StringIndexTest.java
01
02
03
04
05
06
07
08
09
10
11
12
public class StringIndexTest {
public static void main(String args[]) {
String s = "1234567890JAVA1234567890java";
System.out.println(s);
System.out.println
("문자열의 길이 : " + s.length());
System.out.println
("indexOf(J) = " + s.indexOf('J'));
System.out.println
("lastIndexOf(9) = " + s.lastIndexOf('9'));
System.out.println
("indexOf(5, 5) = " + s.indexOf('5', 5));
11장. 패키지와 주요 클래스
‘J’ 문자의 처음 위치
‘9’ 문자의 마지막 위치
5번째 이후 ‘5’ 문자의 처음 위치
65
6 String 클래스
6-4
문자열 탐색
 실습예제
StringIndexTest.java
13
14
15
16
17
18
19
20
System.out.println
("lastIndexOf(5, 18) = " + s.lastIndexOf('5', 17));
System.out.println
("indexOf( java, 10) = " + s.indexOf("java", 10));
System.out.println
("lastIndexOf(Java, 40) = " + s.lastIndexOf("Java", 23));
17번째 이전 ‘5’ 문자의 위치
10번째 이후 “java” 문자열의 위치
23번째 이전 “Java” 문자열의 위치
}
}
11장. 패키지와 주요 클래스
66
6 String 클래스
6-4
문자열 탐색
 프로그램 설명
-
07~10
: 특정 문자를 이용하여 문자열을 탐색한다. 특정 문자가 처음 나온 위치와 마지막 나
온 위치를 반환한다.
-
11~14
: 문자열의 특정 위치를 지정하여 그 위치 다음 또는 그 위치 이전 부분으로 탐색한다.
-
15~18
: 문자열에서 특정 문자열을 탐색한다.
11장. 패키지와 주요 클래스
67
6 String 클래스
6-5
문자열의 변환
 문자열 변환 메소드
형식
String substring(int startIndex, int endIndex)
String concat(String constr)
String replace(char original, char replacement)
String trim()
 형변환 메소드
형식
11장. 패키지와 주요 클래스
static String valueOf(double num)
static String valueOf(long num)
static String valueOf(Object obj)
static String valueOf(char chars[])
static String valueOf(char chars[], int startIndex, int numChars)
68
6 String 클래스
6-5
문자열의 변환
 대소문자 변환 메소드
형식
String toLowerCase()
String toUpperCase()
11장. 패키지와 주요 클래스
69
6 String 클래스
6-5
문자열의 변환
 실습예제
SubStringTest.java
01
02
03
04
05
06
07
08
09
10
11
12
13
public class SubStringTest {
public static void main(String args[]) {
String str = "알기쉽게 해설한 자바";
System.out.println("인덱스 5부터 8이전까지의 문자열 : " +
5부터 8 이전까지의 문자열
str.substring(5,8));
System.out.println(str.concat("와 예제 프로그램"));
문자열 연결
System.out.println(str.replace('한','된'));
특정 문자를 치환
str = " " + str + "
";
System.out.println("공백 추가 str의 길이 : " + str.length());
str = str.trim();
문자열 양쪽의 공백 제거
System.out.println("공백 제거 str의 길이 : " + str.length());
}
}
11장. 패키지와 주요 클래스
70
6 String 클래스
6-5
문자열의 변환
 프로그램 설명
-
04, 05
: 위치를 지정하여 문자열의 부분 문자열을 구하는 메소드이다.
-
06
: 두 개의 문자열을 연결하는 메소드이다.
-
07
: 문자열에서 특정 문자를 다른 문자로 치환하는 메소드이다.
-
10
: 문자열 양쪽에 있는 공백 문자들을 제거하는 메소드이다.
11장. 패키지와 주요 클래스
71
6 String 클래스
6-5
문자열의 변환
 실습예제
ConvertStringTest.java
01
02
03
04
05
06
07
08
09
10
11
12
13
public class ConvertStringTest {
public static void main(String args[]) {
int a = 2002 ;
char b[] = {'W','o','r','l','d','c','u','p'};
System.out.println(String.valueOf(a) + " " +
정수 2002를 문자열로 변환
String.valueOf(b) + " in Korea");
String s1 = String.valueOf(b);
문자 배열을 문자열로 변환
System.out.println(String.valueOf(a) + " " +
문자열을 대문자로 변환
s1.toUpperCase() + " in Korea");
System.out.println(String.valueOf(a) + " " +
연결 메소드 사용
String.valueOf(b).toUpperCase() + " in Korea");
}
}
11장. 패키지와 주요 클래스
72
6 String 클래스
6-5
문자열의 변환
 프로그램 설명
-
00, 00
: 자바 프로그램에서는 “.” 연산자를 이용하여 메소드를 연결하여 사용할 수 있다. 왼쪽
부터 연산이 이루어지며, 왼쪽 연산의 결과를 가지고 오른쪽 연산을 수행한다. 위와 같은 경우
는 우선 String.valueOf(b)의 결과를 구한다. 그 결과가 String 클래스의 객체이므로 다시 String
클래스의 메소드를 적용할 수 있다. 07~09번에서 사용된 형태를 하나의 문장으로 표현한 것이
다.
-
자바에서 메소드의 연결은 횟수에 제한을 두지 않는다. 즉 다음과 같은 사용이 가능하다
String.valueOf(b).toUpperCase().concat("java").replace('j','p')
11장. 패키지와 주요 클래스
73
7 StringBuffer 클래스
 StringBuffer 클래스 생성자
-
StringBuffer() 생성자 : 묵시적으로 16개의 문자를 저장할 수 있는 객체를 생성
-
StringBuffer(int size) 생성자 : size로 지정된 문자를 저장할 수 있는 객체를 생성
-
StringBuffer(String str) 생성자 : str로 지정된 문자열과 추가로 16개의 문자를 더 저장할 수
있는 객체를 생성
형식
11장. 패키지와 주요 클래스
StringBuffer()
StringBuffer(int size)
StringBuffer(String str)
74
7 StringBuffer 클래스
 StringBuffer 클래스의 주요 메소드
메소드
설명
StringBuffer append(boolean b)
b를 현재의 문자열 끝에 첨부
StringBuffer append(char ch)
ch를 현재의 문자열 끝에 첨부
StringBuffer append(double d)
d를 현재의 문자열 끝에 첨부
StringBuffer append(float f)
f를 현재의 문자열 끝에 첨부
StringBuffer append(int i)
i를 현재의 문자열 끝에 첨부
StringBuffer append(long l)
l을 현재의 문자열 끝에 첨부
StringBuffer append(Object obj)
obj가 가진 문자열을 현재의 문자열 끝에 첨부
StringBuffer append(Object obj)
obj가 가진 문자열을 현재의 문자열 끝에 첨부
StringBuffer append(String str)
str을 현재의 문자열 끝에 첨부
int capacity()
현재의 문자열 버퍼의 크기를 반환
char charAt(int i)
번째 인덱스에 해당하는 문자를 반환
StringBuffer delete(int start, int end)
문자열의 start에서 end까지를 삭제
11장. 패키지와 주요 클래스
75
7 StringBuffer 클래스
 StringBuffer 클래스의 주요 메소드
메소드
설명
StringBuffer insert(int i, boolean b)
i번째 인덱스 전에 b를 삽입
StringBuffer insert(int i, char ch)
i번째 인덱스 전에 ch를 삽입
StringBuffer insert(int i, int j)
i번째 인덱스 전에 j를 삽입
StringBuffer insert(int i, long l)
i번째 인덱스 전에 l을 삽입
StringBuffer insert(int i, Object obj)
i번째 인덱스 전에 obj를 삽입
StringBuffer insert(int i, String str)
i번째 인덱스 전에 str을 삽입
int length()
문자열 버퍼에 있는 문자의 개수를 반환
StringBuffer reverse()
문자열을 역순의 문자열로 변환하여 반환
void setCharAt(int i, char ch)
i번째 문자를 ch로 설정
void setLength(int len)
버퍼의 크기를 len 크기로 설정
String toString()
현재의 문자열을 String 객체로 반환
String substring(int s, int e)
문자열의 s부터 e까지를 string 객체로 반환
11장. 패키지와 주요 클래스
76
7 StringBuffer 클래스
 실습예제
StringBufferTest1.java
01
02
03
04
05
06
07
08
09
10
11
12
public class StringBufferTest1 {
public static void main(String args[]) {
StringBuffer str1 = new StringBuffer("Hello JAVA");
StringBuffer str2 = new StringBuffer("안녕하세요 자바");
System.out.println("문자열 => " + str1);
System.out.println("문자열 길이 => " + str1.length());
System.out.println("버퍼를 포함한 길이 => " + str1.capacity());
System.out.println("문자열 => " + str2);
System.out.println("문자열 길이 => " + str2.length());
System.out.println("버퍼를 포함한 길이 => " + str2.capacity());
}
}
11장. 패키지와 주요 클래스
버퍼를 포함한 용량
77
7 StringBuffer 클래스
 프로그램 설명
-
00
: StringBuffer 클래스로부터 객체가 생성될 때에는 문자열이 효율적으로 변할 수 있도록
생성되는 문자열 크기에 16개의 문자가 더 추가될 수 있는 공간을 확보한다.
11장. 패키지와 주요 클래스
78
7 StringBuffer 클래스
 실습예제
StringBufferTest2.java
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
public class StringBufferTest2 {
public static void main(String args[]) {
StringBuffer str1 = new StringBuffer("안녕 자바");
System.out.println("버퍼에 들어있는 내용 => " + str1);
System.out.println("문자열 끼워넣기 => " +
str1.insert(3,"Power "));
3번째 위치에 문자열 삽입
System.out.println("버퍼의 5번째 문자 => " +
str1.charAt(4));
4번째 위치에 문자열 삽입
str1.setCharAt(0, '정');
0번째 위치의 문자를 ‘정’으로 치환
System.out.println("0번째 값을 '정'으로 변경 => " + str1);
str1.setLength(8);
문자열의 길이를 8로 조정
System.out.println("버퍼의 새로운 값 => " + str1);
System.out.println("문자열의 역순출력하기 => " +
str1.reverse());
문자열을 역순으로 출력
}
}
11장. 패키지와 주요 클래스
79
7 StringBuffer 클래스
 프로그램 설명
-
00
: 현재의 문자열의 길이를 강제로 조정한다. 뒷부분의 문자열이 손실된다.
11장. 패키지와 주요 클래스
80
8 유틸리티 패키지 개요
 java.util 패키지의 주요 클래스
384 page
11장. 패키지와 주요 클래스
81
8 유틸리티 패키지 개요
 java.util 패키지의 주요 클래스
384 page
11장. 패키지와 주요 클래스
82
9 Random 클래스
 Random 클래스
-
난수 발생 기능을 제공
-
double, float, int, long 등 다양한 형태
 Random 클래스 생성자
-
Random() 생성자 : 현재의 시간을 초깃값으로 하는 난수 발생기를 생성
-
Random (long seed) 생성자 : seed 값을 초깃값으로 하는 난수 발생기를 생성
형식
11장. 패키지와 주요 클래스
Random()
Random(long seed)
83
9 Random 클래스
 Random 클래스의 주요 메소드
메소드
설명
void nextBytes(byte buffer[])
buffer를 난수로 채운다.
float nextFloat()
float형의 난수를 반환
int nextInt()
int형의 난수를 반환
long getLong()
long형의 난수를 반환
double nextDouble()
double형의 난수를 반환
double nextGaussian()
Gaussian형의 난수를 double 값으로 반환
void setSeed(long newseed)
난수 발생기의 seed 값을 newseed 값으로 설정
11장. 패키지와 주요 클래스
84
9 Random 클래스
 실습예제
RandomTest.java
01
02
03
04
05
06
07
08
09
10
11
12
import java.util.*;
java.util 패키지를 포함
public class RandomTest {
public static void main(String args[]) {
Random rangen = new Random();
Random 객체 생성
for(int i = 1 ; i <= 5 ; i++) {
foat a = rangen.nextFloat();
실수형의 난수 생성
System.out.print("Float형 난수 : " + a);
int b = rangen.nextInt();
정수형의 난수 생성
System.out.println(" Int형 난수 : " + b);
}
}
}
11장. 패키지와 주요 클래스
85
9 Random 클래스
 프로그램 설명
-
01
: java.util 패키지에 속한 클래스를 사용하기 위해 java.util 패키지를 import 시켰다.
-
04
: Random 클래스로부터 객체를 생성하였다.
-
06, 08
: 실수형과 정수형의 난수를 생성하였다.
11장. 패키지와 주요 클래스
86
10 Arrays 클래스
 Arrays 클래스의 객체
-
자바에서 배열은 객체로 취급하며, 사용하는 모든 배열
 Arrays 클래스의 주요 메소드
메소드
static List asList(Object[] a)
static int binarySearch(int[] a, int key)
static boolean equals(int[] a, int[] b)
static void fill(int[] a, int value)
static void fill(int[] a, int from, int to,
int value)
static void sort(int[] a)
static void sort(int[] a, int from, int to)
static String toString(int[] a)
11장. 패키지와 주요 클래스
설명
배열 a를 List형의 객체로 반환
배열 a에서 key로 지정된 값을 찾아 반환. boolean을 제외
한 7가지 기본 자료형과 Object형도 사용 가능. 이 메소드
는 배열 요소들이 정렬된 후에 사용해야 한다.
배열 a와 b가 같은지를 비교하여 결과를 반환. 8개의 기본
자료형과 Object형도 사용 가능
배열 a의 모든 요소를 value 값으로 설정한다. 8개의 기본
자료형과 Object형도 사용 가능
배열 a의 from부터 to까지를 value 값으로 설정한다. 8개의
기본 자료형과 Object형도 사용 가능
배열 a의 요소들을 정렬. boolean을 제외한 7가지 기본 자
료형과 Object형도 사용 가능
배열 a의 from부터 to까지를 정렬. boolean을 제외한 7가
지 기본 자료형과 Object형도 사용 가능
배열 a의 요소들을 문자열로 반환한다. 이 메소드는 모든
자료형에 적용 가능
87
10 Arrays 클래스
 실습예제
ArraysTest1.java
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
import java.util.*;
public class ArraysTest1 {
public static void main(String[] args) {
int[] int1 = {0,1,2,3,4,5,6,7,8,9};
System.out.println("초기배열 : " + Arrays.toString(int1));
배열의 요소를 문자열로 출력
Arrays.fll(int1, 3, 5, 33);
배열의 특정 위치 값을 치환
System.out.println("fll() 수행 후 : " + Arrays.toString(int1));
Arrays.sort(int1);
배열 요소 정렬
System.out.println("sort() 수행 후 : " + Arrays.toString(int1));
System.out.println("33은 배열의 " + Arrays.binarySearch(int1,33) +
"번째 요소");
배열 요소 2진 탐색
int[] int2 = {5,4,3,2,1};
System.out.println("두 번째 배열 : " + Arrays.toString(int2));
System.out.println("두 개의 배열이 같은가? "
+ Arrays.equals(int1, int2));
배열이 같은지 검사
}
}
11장. 패키지와 주요 클래스
88
10 Arrays 클래스
 프로그램 설명
-
05
: toString() 메소드는 배열의 요소를 문자열로 출력하는 메소드이다. 모든 종류의 배열을
문자열로 출력할 수 있다.
-
06
: 배열의 특정 위치의 값을 특정 값으로 치환하는 메소드이다. 3, 4번 위치의 값을 33으로
치환하였다.
-
08
: 배열의 요소를 오름차순으로 정렬하였다.
-
10~11
: 배열에서 특정 요소를 검색하여 배열의 위치를 반환한다. 검색은 2진 탐색기법을 사
용한다.
-
15
: 두 개의 배열 요소가 같은지를 검사한다.
11장. 패키지와 주요 클래스
89
10 Arrays 클래스
11장. 패키지와 주요 클래스
90
10 Arrays 클래스
 실습예제
ArraysTest2.java
01
02
03
04
05
06
07
08
09
10
11
12
13
14
import java.util.Arrays;
public class ArraysTest2 {
static String array1[] = {"IMF", "제주도", "자바도사",
"한글나라", "Computer", "모카", "JAVA", "인터넷탐색",
"초롱초롱", "come", "바람", "스크립터", "군고구마", "도서",
"their", "country" };
public static void main(String args[]) {
System.out.println("======= 정렬 전 데이터 ==========");
System.out.println(Arrays.toString(array1));
Arrays.sort(array1);
배열의 요소를 정렬
System.out.println("======= 정렬 후 데이터 ==========");
System.out.println(Arrays.toString(array1));
}
}
11장. 패키지와 주요 클래스
91
10 Arrays 클래스
 프로그램 설명
-
10
: 배열의 요소를 정렬한다.
11장. 패키지와 주요 클래스
92
 학습정리
 패키지 개요와 패키지 사용
① JDK는 클래스들의 특성에 따라 클래스들을 패키지로 구분하여 제공하고 있다.
② import문을 사용하여 원하는 패키지를 포함하여 클래스를 작성할 수 있다.
 java.lang 패키지의 개요
① 자바의 기본 패키지로서 import문을 사용하여 포함시키지 않아도 자동으로 포함되
는 패키지이다.
 Object 클래스
① 모든 자바 클래스의 최상위 클래스이다.
② Object 클래스는 extends로 지정하지 않아도 상속되는 클래스이다.
③ Object 클래스에서 선언된 메소드는 모든 자바 프로그램에서 사용이 가능하다.
93
 학습정리
 포장(Wrapper) 클래스
① 자바에서 사용되는 8개의 기본 자료형에 대해 포장 클래스를 제공한다.
② 포장 클래스를 사용함으로써 클래스에서 제공되는 다양한 기능의 메소드를 쉽게
사용할 수 있다.
 문자열의 개요
① 자바는 문자열을 위해 String 클래스와 StringBuffer 클래스를 제공하고 있다.
② 한번 생성된 다음에 변하지 않는 문자열, 즉 상수 문자열을 사용할 때는 String 클래
스를 이용하고, 프로그램에서 계속 변하는 문자열을 사용할 때는 StringBuffer 클래
스를 이용한다.
 java.util 패키지
① 자바는 다양한 기능을 가진 클래스들을 java.util 패키지로 제공하고 있다.
② Random 클래스는 난수를 발생시키는 클래스로서, 다양한 형태의 난수를 생성할
수 있다.
③ Arrays 클래스는 배열을 나타내는 클래스로서, 다양하고 편리한 메소드를 제공하고
있다.
94
11장. 패키지와 주요 클래스
95