Package Class 2 Heeseung Jo
목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section 8 유틸리티패키지개요 section 9 Random 클래스 section 10 Arrays 클래스 2
문자열의개요 문자열 (String) 자바프로그램에서많이사용되는요소 자바는문자열을객체로취급 상수문자열을사용할때 : String 클래스 계속변하는문자열을사용할때 : StringBuffer 클래스 3
String 클래스 변하지않는문자열 상수문자열을위해사용 문자열을생성하고조작할수있도록다양한생성자와메소드를제공 형식 String() String(char chars[]) String(char chars[], intstartindex, intnumchars) String(String strobj) String(byte asciichars[], byte highorderbyte) String(byte asciichars[], byte highorderbyte, intstartindex, int numchars) String(byte asciichars[]) String(byte asciichars[], int startindex, intnumchars) 4
실습예제 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 문자열 "; (" 문자열 s1 : " + s1); 배열을이용하여객체생성배열의특정부분을이용하여객체생성 문자열을지정하여객체생성 (" 문자열 s1의길이 : " + s1.length()); (" 문자열 s2 : " + s2); (" 문자열 s3 : " + s3); (" 문자열 s4 : " + s4); } } 문자열의길이출력 5
6
canonical 문자열 자바는편리한문자열의사용을위해단축 (shorthand) 초기화를허용 단축초기화과정을거쳐생성된문자열 String name = "kim"; name = "park"; 7
문자열길이메소드 형식 int length() char chars[] = {'K', 'o', 'r', 'e', 'a'}; String s = new String(chars); (s.length()); 8
문자열추출메소드 charat() 메소드 : 문자열의특정위치에있는문자를반환 getchars() 메소드 : 문자열의일부를문자배열로제공 형식 char charat(int i) void getchars(int sourcestart, int sourceend, char target[], int targetstart) 9
실습예제 StringExtract.java 01 02 03 04 05 06 07 08 09 public class StringExtract { public static void main(string args[]) { String a1 = "WorldCup Korea"; (" 추출된문자 : " + a1.charat(2)); char buff[] = new char[3]; a1.getchars(5,8,buff,0); (buff); } } 문자열의 5-7 번문자를출력 문자열의 2 번째 (0 부터시작 ) 문자를출력 10
11
문자열비교메소드 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) 12
실습예제 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(" 알기쉽다 "); ("s1과 s2가동일한문자열? : " + s1.equals(s2)); ("s2와 s3가동일한문자열?( 대소문자무시 ) : " + s2.equalsignorecase(s3)); if (s1 == s4) 객체변수가가진값 ( 주소 ) 비교 ("s1과 s4를 \"==\" 연산자로비교한결과는같다 "); else equals() 메소드로비교대소문자무시비교 13
실습예제 EqualsTest.java 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 } } ("s1과 s4를 \"==\" 연산자로비교한결과는같지않다 "); if (s1.equals(s4)) 객체변수가지정하는문자열비교 ("s1과 s4를 \"equals()\" 메소드로비교한결과는같다 "); else ("s1과 s4를 \"equals()\" 메소드로비교한결과는같지않다 "); ("s1문자열은 \" 알기 \" 로시작하는가? " + s1.startswith(" 알기 ")); ("s1문자열은 \"ple\" 로끝나는가? " + s2.endswith("ple")); 문자열시작과끝을비교 14
15
문자열탐색메소드 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) 19
실습예제 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"; (s); (" 문자열의길이 : " + s.length()); ("indexof(j) = " + s.indexof('j')); ("lastindexof(9) = " + s.lastindexof('9')); ("indexof(5, 5) = " + s.indexof('5', 5)); J 문자의처음위치 9 문자의마지막위치 5 번째이후 5 문자의처음위치 20
실습예제 StringIndexTest.java 13 14 ("lastindexof(5, 17) = " + s.lastindexof('5', 17)); 17 번째이전 '5' 문자의위치 15 16 ("indexof(java, 10) = " + s.indexof("java", 10)); 10 번째이후 "java" 문자열의위치 17 18 19 } ("lastindexof(java, 23) = " + s.lastindexof("java", 23)); 23 번째이전 "Java" 문자열의위치 20 } 21
문자열변환메소드 형식 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) 23
대소문자변환메소드 형식 String tolowercase() String touppercase() 24
실습예제 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 = " 알기쉽게해설한자바 "; (" 인덱스 5부터 8이전까지의문자열 : " + str.substring(5,8)); (str.concat(" 와예제프로그램 ")); (str.replace(' 한 ',' 된 ')); str = " " + str + " "; (" 공백추가 str 의길이 : " + str.length()); str = str.trim(); 문자열양쪽의공백제거 특정문자를치환 (" 공백제거 str의길이 : " + str.length()); } } 5부터 8 이전까지의문자열문자열연결 25
아래와같이출력되도록변경하시오 자바해설한알기쉽게 Java document site 에서적절한함수를찾아서사용 26
실습예제 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'}; (String.valueOf(a) + " " + String.valueOf(b) + " in Korea"); String s1 = String.valueOf(b); (String.valueOf(a) + " " + s1.touppercase() + " in Korea"); (String.valueOf(a) + " " + String.valueOf(b).toUpperCase() + " in Korea"); } } 문자배열을문자열로변환 정수 2002 를문자열로변환 문자열을대문자로변환연결메소드사용 27
28
Exercise Ex. 아래와같이 IP address 10 개문자열배열로있다고가정한다 맨끝이 1 로끝나는 IP address 만출력하고몇개인지출력하시오 전북대의 IP address 만출력하고몇개인지출력하시오 - 210.117.X.X 이면전북대의 IP address 임 중국의 IP address 만출력하고몇개인지출력하시오 - 180.X.X.X 이거나 27.X.X.X 이면중국의 IP address 임 IP address 의첫자리가 200 이상인것을모두출력하시오 String ips[]=new String[10]; ips[0]="210.117.1.1"; ips[1]="143.248.5.117"; ips[2]="113.198.112.148"; ips[3]="210.117.68.41"; ips[4]="210.117.184.11"; ips[5]="27.233.85.12"; ips[6]="180.76.66.45"; ips[7]="180.76.77.81"; ips[8]="27.12.88.51"; ips[9]="223.194.64.51"; 29