자바 키워드 & 문자열 다루기 인터넷 프로그래밍 강의자료 3 (1, 3반) 한용재 2003.09.22.

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

SCJP. Garbage Collection  Garbage Collector( 이하 GC) 가 Heap 영역 에 할당된, 더 이상 사용되지 않는 메모리인 Garbage 를 다른 객체가 사용할 수 있도록 정리하는 것.  C++ 에서의 메모리 해제 int* v=new.
12장 문자열 12.1 문자열의 개요 12.2 String 클래스 12.3 StringBuffer 클래스
프로그래밍 개론 Ⅰ 제 3장. 클래스와 객체의 사용 ①.
5. 접근 제한자의 이해 SCJP 자격증 프로젝트 발표자 : 노효진.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
10. 예외 처리.
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Chap07 상속 Section 1 : 상속의 개요 Section 2 : 멤버 변수의 상속
최윤정 Java 프로그래밍 클래스 상속 최윤정
4장 자바 기본 구조 4.1 자바 응용 프로그램 분석 4.2 자바 애플릿 프로그램 분석
4부 클래스 라이브러리 “4부에서는 자바 언어의 API인 클래스 라이브러리에 관해 설명합니다
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
표준 API(클래스라이브러리)의 기본 클래스 활용
JAVA 언어로 배우는 디자인 패턴 입문 chap. 1-2.
3. 자바에서 지원하는 패키지 자바에서 기본적으로 제공하는 패키지.
Lesson 3. 입출력과 제어문.
7장 배열 ②.
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
Choi, Namseok Java 기초 (Java의 제어문과 배열) Choi, Namseok
Java 11장. 패키지와 주요 클래스 public class SumTest {
Lesson 5. 레퍼런스 데이터형.
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
4.1 자바 응용 프로그램 분석 4.2 식별자(identifier)와 예약어 4.3 변수와 자료형
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
Chap09 패키지와 주요 클래스 9.1 패키지 개요와 패키지의 사용 9.2 java.lang 패키지의 개요
Lesson 9. 예외처리.
Lesson 6. 형변환.
명품 Java Programming.
5장. 참조 타입.
2장 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
자바 5.0 프로그래밍.
패키지와 접근 제어 패키지에 대하여 접근 제어에 대하여.
3장 자바의 기본문법(2).
Lesson 7. 클래스와 메소드 - 1.
자바 5.0 프로그래밍.
11장. 1차원 배열.
제1장 서론.
12장 문자열 12.1 문자열의 개요 12.2 String 클래스 12.3 StringBuffer 클래스.
7장 인터페이스와 추상 클래스.
JA A V W. 03.
인터넷응용프로그래밍 JavaScript(Intro).
Lesson 4. 수식과 연산자.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
Lesson 2. 기본 데이터형.
제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
컴퓨터공학실습(I) 3주 인공지능연구실.
자바 5.0 프로그래밍.
자바 5.0 프로그래밍.
Power Java 제11장 상속.
JA A V W. 06.
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
객체기반 SW설계 팀활동지 4.
[ 단원 04 ] 반복과 배열.
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
2.가상머신의 탐험 도구, Oolong에 대하여 ps lab 김윤경.
2장 자바의 기본문법(1).
자바 객체 지향 프로그래밍 Ps lab 김윤경.
6 객체.
3장 자바의 기본문법(2).
Presentation transcript:

자바 키워드 & 문자열 다루기 인터넷 프로그래밍 강의자료 3 (1, 3반) 한용재 2003.09.22

Contents 1. keyword 2. 문자열의 개요 3. String 클래스 4. StringBuffer 클래스

keyword 거의 사용하지 않는 키워드: goto, const, volatile 소스 파일 구성 import, package 분류 키워드 소스 파일 구성 import, package 클래스/인터페이스 선언, 인스턴스 생성 class, interface, new 기본 데이터형 boolean, char, byte, short, int, long, float, double 데이터 값 true, false, null 클래스 상속 extends, implements 생성자 super, this 연산자 instanceof 접근제한자 public, protected, private 기타제한자 abstract, static, final, native, synchronized 제어문 if, for, while, do, else, break, continue, default, return, switch, case 예외처리 try, catch, finally, throws, throw 기타 transient, goto, const, volatile 거의 사용하지 않는 키워드: goto, const, volatile

문자열의 개요 자바에서는 문자열을 객체로 취급 java.lang 패키지에 포함 java.lang.String 클래스와 java.lang.StringBuffer 클래스 제공 String 클래스 : 한번 생성된 다음 변하지 않는 문자열에 사용 StringBuffer 클래스 : 계속하여 변할 수 있는 문자열에 사용 문자열을 2개의 클래스로 제공하는 이유 : 효율성

String 클래스 생성자 String( ) String(byte[ ] bytes) String(byte[ ] bytes, int offset, int length) String(char[ ] value) String(char[ ] value, int offset, int count) String(String strObj) chars[ ] : 문자 배열 startindex : 부분 문자열을 추출하기 위해 지정된 인덱스 값 numChars : startindex에서 시작하여 추출할 문자 또는 바이트의 개수 highOrderByte : 각 문자들(아스키, 한글 등)의 상위 바이트를 지정하는 값이며,

문자열을 생성하는 예 JVM에 의한 객체 생성 사용자에 의한 객체 생성 null string String s1 = “aaa”; s1,s2는 같은 주소 memory “aaa” 문자열저장소 사용자에 의한 객체 생성 String s1 = new String(“aaa”); String s2 = new String(“aaa”); s1,s2는 다른 주소 memory “aaa” null string String strNull = new String(); String strNull = “”; String strNull  선언만 해 놓으면 null String이 아님!!

String 클래스의 주요 메소드 int length() 문자열의 길이를 반환 char charAt(int index) 문자열에서 i번째 문자를 반환 boolean equals(Object anObject) 현재의 문자열과 anObject으로 지정된 문자열 비교 boolean equalsIgnoreCase(String anotherString) 현재의 문자열과 anotherString으로 지정된 문자열을 대소문자를 무시하고 비교 char indexOf(String str) 현재의 객체가 가지고 있는 문자열 내에서 str로 지정된 문자의 첫 번째 인덱스를 반환 String substring(int beginIndex) beginIndex로부터 시작하는 문자열을 반환 String substring(int beginIndex, int endIndex) beginIndex와 endIndex-1까지의 부분 문자열을 반환 String replace(char oldChar, char newChar) oldChar로 지정된 문자를 newChar로 지정된 문자로 대치 String toLowerCase() 문자열의 모든 문자를 소문자로 대치 String toUpperCase() 문자열의 모든 문자를 대문자로 대치 String trim() 문자열의 양쪽 공백을 제거

(1) 문자열의 길이 메소드 : char chars[] = {'K', 'o', 'r', 'e', 'a’}; int length() : 문자열의 길이를 반환 char chars[] = {'K', 'o', 'r', 'e', 'a’}; String s = new String(chars); System.out.println(s.length()); 결과로 5를 출력

(2) 메소드를 이용하지 않는 문자열의 조작 New를 사용하지 않고 문자열을 생성 String s2 = "2002 WorldCup Korea"; // 리터럴을 사용한 문자열 생성 System.out.println("2002 Pusan Asiad".length()); // String 객체 대신에 직접 스트링 리터럴을 사용할 수 있다. 16을 출력 String age = "20"; String s = "그의 나이는 " + age + "세 입니다."; System.out.println(s); // "그의 나이는 20세입니다."를 출력 “+” 연산자를 이용하여 문자열을 결합

(2) 메소드를 이용하지 않는 문자열 조작 문자열이 아닌 다른 형의 데이터도 문자열과 결합 int age = 20; String s1 = "그의 나이는 " + age + "세 입니다."; // int 형의 데이터를 문자열로 변환하여 결합 System.out.println(s1); // "그의 나이는 20세입니다."를 출력 String s2 = "WorldCup " + 2 + 0 + 0 + 2; System.out.println(s2); // "WorldCup 2002"를 출력 String s3 = "WorldCup " + (2 + 0 + 0 + 2); // "WorldCup 4"를 출력

(3) 문자열 추출 class StringExtract { public static void main(String args[]) { String a1 = "WorldCup Korea"; System.out.println("추출된 문자 : " + a1.charAt(2)); } 출력 결과 추출된 문자 : r

(4) 문자열 비교 class EqualsExam { public static void main(String args[]) { String a2 = "Apple"; String a3 = "APPLE"; System.out.println("문자열 a1 : " + a1); System.out.println("문자열 a2 : " + a2); System.out.println("문자열 a3 : " + a3); System.out.println("a1과 a2가 동일한 문자열? : " + a1.equals(a2)); System.out.println("a2와 a3가 동일한 문자열?(대소문자 무시) : " + a2.equalsIgnoreCase(a3)); String s1 = "WorldCup Korea"; System.out.println(s1.startsWith("Wor")); System.out.println(s1.endsWith("rea")); }

(5) 문자열 탐색 문자열내에서 지정된 문자나 부분 문자열을 찾아내기 위한 2개의 메소드 제공. 2개의 메소드는 찾고자하는 문자나 부분 문자열의 위치를 반환 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)

(5) 문자열 탐색 class IndexExam { public static void main(String args[]) { String s = "알기 쉽게 해설한 JAVA. " + "java 배우기 쉽게 쓴 java 해설서"; System.out.println(s); System.out.println("indexOf('해') = " + s.indexOf('해')); System.out.println("lastIndexOf('해') = " + s.lastIndexOf('해')); System.out.println("indexOf("a") = " + s.indexOf("a")); System.out.println("lastIndexOf("a") = " + s.lastIndexOf("a")); System.out.println("indexOf('a', 5) = " + s.indexOf('a', 5)); System.out.println("lastIndexOf('a', 40) = " + s.lastIndexOf('a', 40)); System.out.println("indexOf(java, 10) = " + s.indexOf("java", 10)); System.out.println("lastIndexOf(java, 40) = " + s.lastIndexOf("java", 40)); }

(6) 문자열의 변환 String 클래스의 객체로 생성된 문자열은 변환될 수 없다. (StringBuffer 클래스와의 차이점) String 클래스는 현재의 문자열을 변환하여 새로운 문자열을 생성하는 메소드를 제공한다. 메소드 String substring(int startIndex, int endIndex) : 부분 문자열을 반환 String concat(String constr) : 결합된 문자열 반환 String replace(char original, char replacement) : 치환된 문자열 반환 String trim() : 문자열의 시작과 끝부분에 있는 공백이 제거된 문자열을 반환 출력결과 교재 참조

(6) 문자열의 변환 class SubStringExam { 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 + " "; // 앞에 2개, 뒤에 5개의 공백 추가 System.out.println("공백 추가 str의 길이 : " +str.length()); str = str.trim(); // 문자열의 양쪽 공백을 제거 System.out.println("공백 제거 str의 길이 : " + str.length()); }

(7) 형 변환 다른 형의 데이터를 문자열로 변환하는 메소드 대소문자를 변환 메소드. 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) 대소문자를 변환 메소드. String toLowerCase() String toUpperCase()

(7) 형 변환 class ConvertString { 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) + "은 한국에서...."); String s1 = String.valueOf(b); // valueOf() 메소드는 static으로 선언된 클래스 메소드 System.out.println(String.valueOf(a) + " " + s1.toUpperCase() + }

StringBuffer 클래스 변할 수 있는 문자열을 가진다 생성자 StringBuffer(int size) : size 크기의 객체를 생성 StringBuffer(String str) : str로 지정된 문자열과 추가로 16개의 문자를 더 저장할 수 있는 객체를 생성 StringBuffer 객체는 객체의 크기가 변할 때 마다 메모리를 재 할당한다(16개의 문자를 저장할 수 있는 버퍼 단위로)

StringBuffer 클래스의 주요 메소드 int length() 문자열의 길이를 반환 int capacity() 문자배열의 크기 반환 StringBuffer append(String str) str을 현재의 문자열 끝에 첨부 StringBuffer insert(int offset, String str) i 번째 인덱스에 str을 삽입 Strign toString() StringBuffer 객체를 String 객체로 변환 void setCharAt(int index, char ch) index위치의 문자를 ch문자로 변환 StringBuffer reverse() 문자열을 거꾸로 변환 StringBuffer delete(int start, int end) start 인덱스에서 end-1 인덱스 까지 삭제

StringBuffer 클래스 - 예 public class StringBufferTest { public static void main(String []args) StringBuffer s = new StringBuffer("알기 쉽게 해설한 자바"); StringBuffer result; String result_str; result = s.append("이에요"); System.out.println(result); result = s.replace(10, 12, "JAVA"); result = s.insert(6, "충분히 "); result = s.reverse(); StringBuffer s1 = new StringBuffer("1234"); s1.append("Hey "); s1.append("Duke!"); System.out.println(s1.length()); System.out.println(s1.capacity()); System.out.println(s1.delete(0,3)); System.out.println(s1.insert(5, "aa")); }

String 객체의 변환 자바는 String 클래스에서도 가변 길이의 문자열 사용을 허용 class StringConvert1 { public static void main(String args[]) { String s1 = "새 천년 "; String s2 = "대한 민국"; s1 = s1 + s2; System.out.println(s1); } class StringConvert2 { StringBuffer s1 = new StringBuffer("새 천년 "); s1.append("대한 민국"); 이 두개의 프로그램은 같은 결과를 출력한다

String 객체의 변환 (cont.) 앞의 두 개의 프로그램은 같은 결과를 나타내지만 JVM이 두 개의 프로그램을 수행하는 절차에는 많은 차이가 있다. JVM은 String 객체가 변환될 경우에 StringBuffer 클래스를 이용하여 처리 StringConvert1 ① String 클래스의 객체 생성 ② 문자열 변환을 위한 임시 StringBuffer 객체 생성 ③ 문자열을 더하기 위한 StringBuffer 클래스의 append() 메소드 수행 ④ 임시 StringBuffer 객체를 String 객체로 변환하여 저장 ⑤ 임시로 사용된 StringBuffer 객체를 삭제(Garbage Collection) StringConvert2 ① StringBuffer 클래스의 객체 생성 ② 문자열을 더하기 위한 append() 메소드 수행