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 패키지개요와패키지의사용 패키지 - 비슷한종류의클래스나인터페이스들을하나의집단으로묶어놓은것 5
1 패키지개요와패키지의사용 JDK 에서제공되는주요패키지 패키지이름 설명 java.lang 프로그램에서지정하지않아도묵시적으로포함되는패키지로서, 자바프로그램의기본적인기능을제공하는패키지이다. 자바프로그램의최상위클래스인 java.lang.object 클래스가이패키지에포함되어있다. java.util 자바프로그래밍에유용한유틸리티클래스를포함하는패키지이다. java.io java.net java.awt 입출력기능을제공하는패키지로서스트림을다양한형태로처리할수있는기능을제공한다. 네트워킹과관련된기능을제공하는패키지로서 telnet, ftp, http 와같은프로토콜을사용할수있는클래스를제공한다. 그래피컬사용자인터페이스 (GUI) 를구축하기위한다양한컴포넌트를제공하는패키지로서사용자는이패키지를이용하여원하는인터페이스를구축할수있다. java.awt.event AWT 컴포넌트들의이벤트를제어하는패키지이다. java.applet 웹검색기에서수행되는애플릿프로그램을작성하기위해필요한클래스를제공하는패키지 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 패키지 7
2 java.lang 패키지의개요 java.lang 패키지 - import 문을사용하여포함시키지않아도자동적으로포함되는패키지 8
2 java.lang 패키지의개요 java.lang 패키지의클래스 345 page 9
3 Object 클래스 java.lang.object 클래스 - 이패키지의최상위클래스이면서모든자바프로그램의최상위클래스 10
3 Object 클래스 java.lang.object 클래스의주요메소드 메소드 설명 Ojbect clone() boolean equals (Obje ct object) void finalize() Class getclass() 객체를복제하기위해사용하는메소드 두개의객체가같은지를비교하여같으면 true, 아니면 false 를반환 자바에서는객체가더이상사용되지않으면자동적으로쓰레기수집 (garbage collection) 기능을수행한다. finalize() 메소드는쓰레기수집기능이수행되기전에호출되며객체가점유하고있던자원들을해제하는데사용되는메소드 객체의클래스명을 Class 형의객체로반환 int hashcode() 호출한객체와연관된 hash 코드를얻는다. String tostring() 현재객체의문자열표현을반환한다. void notify() 대기중인스레드중하나의스레드를다시시작시킨다. void notifyall() 대기중인모든스레드를다시시작시킨다. void wait() 스레드의실행을중지하고대기상태로간다. 11
4 포장 (Wrapper) 클래스 기본자료형을객체로사용한다는의미 - 기본자료형과관련된클래스를제공한다는의미 포장 (wrapper) 클래스 - 기본자료형객체를지원하기위해, 각각의자료형과관련된클래스들을제공 class ValueandWrapper { public static void main(string args[]) { int num1 = 20; Integer num2 = new Integer(30) Integer num2 = 30; 의형태로사용가능 int total = num1 + num2.intvalue(); Integer 클래스의 intvalue() 메소드로정수값을추출 System.out.println(" 두수의합은 : " + total); Integ Integ 12
4 포장 (Wrapper) 클래스 4-1 Integer 클래스 Integer 클래스 - 정수값을포장하는클래스 형식 Integer(int n) Integer(String str) 13
4 포장 (Wrapper) 클래스 4-1 Integer 클래스 Integer 클래스의주요메소드 타입 byte bytevalue() double doublevalue() float floatvalue() int intvalue() long longvalue() short shortvalue() String tostring() boolean equals(object IntegerObj) static Integer decode(string str) throws NumberFormatException static int parseint(string str) throws NumberFormatException 설명 현객체의값을 byte 값으로변환하여반환 현객체의값을 double 값으로변환하여반환 현객체의값을 float 값으로변환하여반환 현객체의값을 int 값으로변환하여반환 현객체의값을 long 값으로변환하여반환 현객체의값을 short 값으로변환하여반환 현객체의값을문자열로변환하여반환 현객체와 IntegerObj 로지정된객체의값이같으면 true, 다르면 false 를반환 문자열 str 에해당하는 Integer 객체를반환 문자열 str 에해당하는 int 값을반환 14
4 포장 (Wrapper) 클래스 4-1 Integer 클래스 Integer 클래스의주요메소드 타입 static int parseint(string str, int radix) throws NumberFormatException static String tobinarystring(int num) static String tohexstring(int num) static String tooctalstring(int num) static Integer valueof(string str) throws NumberFormatException static Integer valueof(string str, int ra dix) throws NumberFormatException 설명 문자열 str 에해당하는 int 값을 radix 로지정된진법으로반환 num 으로지정된정수값의 2 진법표현을가지는 String 객체를반환 num 으로지정된정수값의 16 진법표현을가지는 String 객체를반환 num 으로지정된정수값의 8 진법표현을가지는 String 객체를반환 문자열 str 에해당하는 Integer 객체를반환 문자열 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 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)); Integer 객체생성 직접값을지정하여객체생성 두객체가가진값을더한다 클래스메소드호출 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()); 17
4 포장 (Wrapper) 클래스 4-1 Integer 클래스 18
4 포장 (Wrapper) 클래스 4-2 Character 클래스 Character 클래스 - char 형의값을저장 형식 Character(char c) 19
4 포장 (Wrapper) 클래스 4-2 Character 클래스 Character 클래스의주요메소드 메소드 설명 static boolean isdefined(char ch) static boolean isdigit(char ch) static boolean isletter(char ch) static boolean isletterordigit(char ch) static boolean islowercase(char ch) static boolean isspace(char ch) static boolean isuppercase(char ch) static char tolowercase(char ch) static char touppercase(char ch) ch가 Unicode이면 true 아니면 false를반환 ch가숫자이면 true 아니면 false를반환 ch가문자이면 true 아니면 false를반환 ch가문자또는숫자이면 true 아니면 false를반환 ch가소문자이면 true 아니면 false를반환 ch가공백문자이면 true 아니면 false를반환 ch가대문자이면 true 아니면 false를반환 ch로지정된문자를소문자로변환하여반환 ch로지정된문자를대문자로변환하여반환 20
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(" 소문자입니다."); 문자배열을선언 각문자를클래스메소드로검사 21
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(" 유니코드입니다."); 유니코드인지검사 22
4 포장 (Wrapper) 클래스 4-2 Character 클래스 23
4 포장 (Wrapper) 클래스 4-3 Byte 클래스 Byte 클래스 - byte 형의값을저장 - MAX_VALUE 와 MIN_VALUE 상수를제공 형식 Byte(byte b) Byte(String s) throws NumberFormatException 24
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) static Byte decode(string str) throws NumberFormatException static byte parsebyte(string str) throws NumberFormatException static byte parsebyte(string str, int radix) throws NumberFormatException 현객체의값을문자열로변환하여반환 현객체가가지고있는값과 BytesObj 로지정된객체가가지고있는값이같으면 true, 다르면 false 를반환 str 로지정된문자열에해당하는 Byte 객체를반환 str 로지정된문자열에해당하는 byte 값을반환 str 로지정된문자열에해당하는 byte 값을 radix 로지정된진법으로반환 25
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"); byte b2 = Byte.parseByte("1"); byte btotal1 = (byte)(b1.bytevalue() + b2); System.out.println("byte 덧셈의결과 1 : " + btotal1); Byte b3 = 1; byte btotal2 = (byte)(b3.bytevalue() + btotal1); "126" 문자열로 Byte 객체생성 System.out.println("byte 덧셈의결과 2 : " + btotal2); byte 형변수초기화 ( 클래스메소드이용 ) 직접숫자를지정하여 Byte 객체생성 정수 (int) 연산수행후 (byte) 형변환 26
4 포장 (Wrapper) 클래스 4-3 Byte 클래스 27
4 포장 (Wrapper) 클래스 4-4 Short 클래스 Short 클래스 - short 형의값을저장 - MAX_VALUE 와 MIN_VALUE 상수를제공 형식 Short(short s) Short(String str) throws NumberFormatException 28
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) static Short decode(string str) throws NumberFormatException static short parseshort(string str) throws NumberFormatException static short parseshort(string str, int radix) throws NumberFormatException 현객체의값을문자열로변환하여반환 현객체가가지고있는값과 ShortObj 로지정된객체가가지고있는값이같으면 true, 다르면 false 를반환 str 로지정된문자열에해당하는 Short 객체를반환 str 로지정된문자열에해당하는 short 값을반환 str 로지정된문자열에해당하는 short 값을 radix 로지정된진법으로반환 29
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 s1 = new Short((short)30); short s2 = Short.parseShort("20"); short stotal = (short)(s1.intvalue() + s2); System.out.println("short 덧셈의결과 : " + stotal); 숫자를 short 형으로형변환하여객체생성 30
4 포장 (Wrapper) 클래스 4-5 Long 클래스 Long 클래스 - long 형의값을저장 - MAX_VALUE 와 MIN_VALUE 상수를제공 형식 Long(long l) Long(String str) throws NumberFormatException 31
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) static long parselong(string str) throws NumberFormatException static long parselong(string str, int radix) throws NumberFormatException static String tobinarystring(long num) 현객체의값을문자열로반환 현객체가가지고있는값과 LongObj 로지정된객체가가지고있는값이같으면 true, 다르면 false 를반환 str 로지정된문자열에해당하는 long 값을반환 str 로지정된문자열에해당하는 long 값을 radix 로지정된진법으로반환 num 의 2 진표현을문자열로반환 32
4 포장 (Wrapper) 클래스 4-5 Long 클래스 Long 클래스의주요메소드 메소드 static String tohexstring(long num) static String tooctalstring(long num) static Long valueof(string str) throws NumberFormatException 설명 num의 16진표현을문자열로반환 num의 8진표현을문자열로반환 str로지정된값을가지는 Long 객체를반환 33
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); System.out.println ("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); System.out.println ("Long 의최솟값 (10 진법 ) : " + a ); long 최댓값출력 long 최솟값출력 Long 최댓값객체생성 Long 최솟값객체생성 34
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)); 35
4 포장 (Wrapper) 클래스 4-5 Long 클래스 36
5 문자열의개요 문자열 (String) - 자바프로그램에서많이사용되는요소 - 자바는문자열을객체로취급 - 상수문자열을사용할때 : String 클래스 - 계속변하는문자열을사용할때 : StringBuffer 클래스 37
6 String 클래스 String 클래스 - 변하지않는문자열 - 상수문자열을위해사용 - 문자열을생성하고조작할수있도록다양한생성자와메소드를제공 형식 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) 38
6 String 클래스 String 클래스의주요메소드 메소드 설명 int length() 문자열의길이를반환 char charat(int I) void getchars(int sourcestart, int sourceend, char target[], int targetstart) byte[] getbytes() boolean equals(object str) boolean equalsignorecase(string str) boolean startswith(string str) i 번째문자를반환 문자열의일부를문자배열 (target[]) 로작성 현재의문자열을바이트배열로반환 현재의문자열과 str로지정된문자열이같으면 true, 다르면 false를반환현재의문자열과 str로지정된문자열이같으면 true, 다르면 false를반환. 단, 비교시대소문자를무시 현재의문자열이 str 로시작하면 true, 아니면 false 를반환 boolean endswith(string str) int compareto(string str) int indexof(char ch) int indexof(string str) 현재의문자열이 str 로끝나면 true, 아니면 false 를반환 두개의문자열을비교하여결과로양수, 음수, 0의값을반환현재의객체가가지고있는문자열내에서 ch로지정된문자의첫번째인덱스를반환 문자열 str 의첫번째인덱스를반환 39
6 String 클래스 String 클래스의주요메소드 메소드 int indexof(int ch, int startindex) int indexof(string str, int startindex) String intern() int lastindexof(char ch) int lastindexof(string str) int lastindexof(int ch, int startindex) int lastindexof(string str, int startindex) String substring(int startindex) String substring(int startindex, int endindex) String concat(string str) String replace(char original, char replacement) 설명 인덱스 startindex 이후의문자 ch의첫번째인덱스를반환인덱스 startindex 이후의문자열 str의첫번째인덱스를반환문자열의 canonical 문자열을반환문자 ch의마지막인덱스를반환문자열 str의마지막인덱스를반환인덱스 startindex 이전의문자 ch의마지막인덱스를반환인덱스 startindex 이전의문자열 str의마지막인덱스를반환 startindex로부터시작하는부분문자열을반환 startindex와 endindex 사이의부분문자열을반환현재의문자열에 str로지정된문자열을결합 original로지정된문자를 replacement로지정된문자로대치 40
6 String 클래스 String 클래스의주요메소드 메소드 설명 String trim() 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 numc hars) String tolowercase() String touppercase() 문자열의앞뒤공백 (whitespace) 을제거 num을문자열로변환하여반환 num을문자열로변환하여반환객체가가지고있는데이터를문자열로변환하여반환문자배열을문자열로변환하여반환문자배열의일부를문자열로변환하여반환문자열을모두소문자로변환하여반환문자열을모두대문자로변환하여반환 41
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); 배열을이용하여객체생성 배열의특정부분을이용하여객체생성 문자열을지정하여객체생성 문자열의길이출력 42
6 String 클래스 43
6 String 클래스 canonical 문자열 - 자바는편리한문자열의사용을위해단축 (shorthand) 초기화를허용 - 단축초기화과정을거쳐생성된문자열 String name = "kim" name = "park" 44
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"; String s2 = new String("Java Korea"); String s3 = s2.intern(); String s4 = "Java Korea"; String s5 = new String("Java Korea"); canonical 문자열객체생성 일반문자열객체생성 intern() 메소드를이용하여 canonical 문자열객체생성 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); 45
6 String 클래스 46
6 String 클래스 6-1 문자열의길이 문자열길이메소드 형식 int length() char chars[] = {'K', 'o', 'r', 'e', 'a'; String s = new String(chars); System.out.println(s.length()); 47
6 String 클래스 6-2 문자열에서의문자추출 문자열추출메소드 - charat() 메소드 : 문자열의특정위치에있는문자를반환 - getchars() 메소드 : 문자열의일부를문자배열로제공 형식 char charat(int i) void getchars(int sourcestart, int sourceend, char target[], int targetstart) 48
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); System.out.println(buff); 문자열의 5-7 번문자를출력 문자열의 2 번째 (0 부터시작 ) 문자를출력 49
6 String 클래스 6-2 문자열에서의문자추출 50
6 String 클래스 6-3 문자열비교 문자열비교메소드 - equals() 메소드 : 현재의문자열과 str로지정된문자열이같으면 true, 다르면 false를반환 - equalsignorecase() 메소드 : equals() 메소드와같으나대소문자를구분하지않고비교 - compareto() 메소드 : 두개의문자열을비교하여문자열이다른문자열보다작으면음수값을, 같으면 0 값을, 크면양수값을반환 - startswith(), endswith() 메소드 : str로지정된문자열로시작하거나끝나면 true를그렇지않으면 false를반환 형식 boolean equals(object str) boolean equalsignorecase(string str) int compareto(string str) boolean startswith(string str) boolean endswith(string str) 51
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 ("s1 과 s2 가동일한문자열? : " + s1.equals(s2)); System.out.println ("s2 와 s3 가동일한문자열?( 대소문자무시 ) : " + s2.equalsignorecase(s3)); if (s1 == s4) else System.out.println 객체변수가가진값 ( 주소 ) 비교 ("s1 과 s4 를 \"==\" 연산자로비교한결과는같다 "); equals() 메소드로비교 대소문자무시비교 52
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)) else System.out.println ("s1 과 s4 를 \"equals()\" 메소드로비교한결과는같다 "); System.out.println ("s1 과 s4 를 \"equals()\" 메소드로비교한결과는같지않다 "); System.out.println ("s1 문자열은 \" 알기 \" 로시작하는가? " + s1.startswith(" 알기 ")); System.out.println 객체변수가지정하는문자열비교 ("s1 문자열은 \"ple\" 로끝나는가? " + s2.endswith("ple")); 문자열시작과끝을비교 53
6 String 클래스 6-3 문자열비교 54
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; 두개의문자열교환 정렬전데이터를출력 문자열의배열을클래스객체변수로선언 두개의문자열비교 55
6 String 클래스 6-3 문자열비교 실습예제 CompareTest.java 18 19 20 21 22 23 System.out.print(array1[i] + " "); 56
6 String 클래스 6-3 문자열비교 57
6 String 클래스 6-4 문자열탐색 문자열탐색메소드 - indexof() 메소드 : 문자열에서특정문자나문자열을탐색하여위치를반환하는메소드 - lastindexof() 메소드 : 문자열에서특정문자나문자열을마지막위치부터거꾸로탐색하여위치를반환하는메소드 형식 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) 58
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)); J 문자의처음위치 9 문자의마지막위치 5 번째이후 5 문자의처음위치 59
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 문자열의위치 60
6 String 클래스 6-4 문자열탐색 61
6 String 클래스 6-5 문자열의변환 문자열변환메소드 형식 String substring(int startindex, int endindex) String concat(string constr) String replace(char original, char replacement) String trim() 형변환메소드 형식 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) 62
6 String 클래스 6-5 문자열의변환 대소문자변환메소드 형식 String tolowercase() String touppercase() 63
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 이전까지의문자열 : " + 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()); 문자열연결 5 부터 8 이전까지의문자열 64
6 String 클래스 6-5 문자열의변환 프로그램설명 - 04, 05 : 위치를지정하여문자열의부분문자열을구하는메소드이다. - 06 : 두개의문자열을연결하는메소드이다. - 07 : 문자열에서특정문자를다른문자로치환하는메소드이다. - 10 : 문자열양쪽에있는공백문자들을제거하는메소드이다. 65
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) + " " + 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"); 정수 2002 를문자열로변환 문자배열을문자열로변환 문자열을대문자로변환 연결메소드사용 66
6 String 클래스 6-5 문자열의변환 67
7 StringBuffer 클래스 StringBuffer 클래스생성자 - StringBuffer() 생성자 : 묵시적으로 16개의문자를저장할수있는객체를생성 - StringBuffer(int size) 생성자 : size로지정된문자를저장할수있는객체를생성 - StringBuffer(String str) 생성자 : str로지정된문자열과추가로 16개의문자를더저장할수있는객체를생성 형식 StringBuffer() StringBuffer(int size) StringBuffer(String str) 68
7 StringBuffer 클래스 StringBuffer 클래스의주요메소드 메소드 StringBuffer append(boolean b) StringBuffer append(char ch) StringBuffer append(double d) StringBuffer append(float f) StringBuffer append(int i) StringBuffer append(long l) StringBuffer append(object obj) StringBuffer append(object obj) StringBuffer append(string str) int capacity() char charat(int i) StringBuffer delete(int start, int end) 설명 b를현재의문자열끝에첨부 ch를현재의문자열끝에첨부 d를현재의문자열끝에첨부 f를현재의문자열끝에첨부 i를현재의문자열끝에첨부 l을현재의문자열끝에첨부 obj가가진문자열을현재의문자열끝에첨부 obj가가진문자열을현재의문자열끝에첨부 str을현재의문자열끝에첨부현재의문자열버퍼의크기를반환번째인덱스에해당하는문자를반환문자열의 start에서 end까지를삭제 69
7 StringBuffer 클래스 StringBuffer 클래스의주요메소드 메소드 StringBuffer insert(int i, boolean b) StringBuffer insert(int i, char ch) StringBuffer insert(int i, int j) StringBuffer insert(int i, long l) StringBuffer insert(int i, Object obj) StringBuffer insert(int i, String str) int length() StringBuffer reverse() void setcharat(int i, char ch) void setlength(int len) String tostring() String substring(int s, int e) 설명 i번째인덱스전에 b를삽입 i번째인덱스전에 ch를삽입 i번째인덱스전에 j를삽입 i번째인덱스전에 l을삽입 i번째인덱스전에 obj를삽입 i번째인덱스전에 str을삽입문자열버퍼에있는문자의개수를반환문자열을역순의문자열로변환하여반환 i번째문자를 ch로설정버퍼의크기를 len 크기로설정현재의문자열을 String 객체로반환문자열의 s부터 e까지를 string 객체로반환 70
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()); 버퍼를포함한용량 71
7 StringBuffer 클래스 72
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 ")); System.out.println(" 버퍼의 5 번째문자 => " + str1.charat(4)); str1.setcharat(0, ' 정 '); System.out.println("0 번째값을 ' 정 ' 으로변경 => " + str1); str1.setlength(8); System.out.println(" 버퍼의새로운값 => " + str1); System.out.println(" 문자열의역순출력하기 => " + str1.reverse()); 3 번째위치에문자열삽입 4 번째위치에문자열삽입 0 번째위치의문자를 정 으로치환 문자열의길이를 8 로조정 문자열을역순으로출력 73
7 StringBuffer 클래스 74
8 유틸리티패키지개요 java.util 패키지의주요클래스 384 page 75
8 유틸리티패키지개요 java.util 패키지의주요클래스 384 page 76
9 Random 클래스 Random 클래스 - 난수발생기능을제공 - double, float, int, long 등다양한형태 Random 클래스생성자 - Random() 생성자 : 현재의시간을초깃값으로하는난수발생기를생성 - Random (long seed) 생성자 : seed 값을초깃값으로하는난수발생기를생성 형식 Random() Random(long seed) 77
9 Random 클래스 Random 클래스의주요메소드 메소드 설명 void nextbytes(byte buffer[]) buffer 를난수로채운다. float nextfloat() int nextint() long getlong() double nextdouble() double nextgaussian() void setseed(long newseed) float형의난수를반환 int형의난수를반환 long형의난수를반환 double형의난수를반환 Gaussian형의난수를 double 값으로반환난수발생기의 seed 값을 newseed 값으로설정 78
9 Random 클래스 실습예제 RandomTest.java 01 02 03 04 05 06 07 08 09 10 11 12 import java.util.*; public class RandomTest { public static void main(string args[]) { Random rangen = new Random(); for(int i = 1 ; i <= 5 ; i++) { foat a = rangen.nextfloat(); System.out.print("Float 형난수 : " + a); int b = rangen.nextint(); java.util 패키지를포함 System.out.println(" Int 형난수 : " + b); Random 객체생성 실수형의난수생성 정수형의난수생성 79
9 Random 클래스 80
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) 설명 배열 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의요소들을문자열로반환한다. 이메소드는모든자료형에적용가능 81
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) + " 번째요소 "); int[] int2 = {5,4,3,2,1; 배열요소정렬 System.out.println(" 두번째배열 : " + Arrays.toString(int2)); System.out.println(" 두개의배열이같은가? " + Arrays.equals(int1, int2)); 배열의특정위치값을치환 배열요소 2 진탐색 배열이같은지검사 배열의요소를문자열로출력 82
10 Arrays 클래스 83
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)); 84
10 Arrays 클래스 85
학습정리 패키지개요와패키지사용 1 JDK 는클래스들의특성에따라클래스들을패키지로구분하여제공하고있다. 2 import 문을사용하여원하는패키지를포함하여클래스를작성할수있다. java.lang 패키지의개요 1 자바의기본패키지로서 import 문을사용하여포함시키지않아도자동으로포함되 는패키지이다. Object 클래스 1 모든자바클래스의최상위클래스이다. 2 Object 클래스는 extends로지정하지않아도상속되는클래스이다. 3 Object 클래스에서선언된메소드는모든자바프로그램에서사용이가능하다. 86
학습정리 포장 (Wrapper) 클래스 1 자바에서사용되는 8개의기본자료형에대해포장클래스를제공한다. 2 포장클래스를사용함으로써클래스에서제공되는다양한기능의메소드를쉽게사용할수있다. 문자열의개요 1 자바는문자열을위해 String 클래스와 StringBuffer 클래스를제공하고있다. 2 한번생성된다음에변하지않는문자열, 즉상수문자열을사용할때는 String 클래스를이용하고, 프로그램에서계속변하는문자열을사용할때는 StringBuffer 클래스를이용한다. java.util 패키지 1 자바는다양한기능을가진클래스들을 java.util 패키지로제공하고있다. 2 Random 클래스는난수를발생시키는클래스로서, 다양한형태의난수를생성할수있다. 3 Arrays 클래스는배열을나타내는클래스로서, 다양하고편리한메소드를제공하고있다. 87
88