파일 입출력 및 문자열, 응용
String 클래스
1. String & StringBuilder
A.
String 객체는 고정적, 즉 문자열 자체가 변하지 않음B.
StringBuilder 객체는 문자열 자체 변경 가능2. String
A.
다양한 메스드와 속성을 제공B.
string 인덱서: 문자열을 char 의 배열로 간주 (s[1]…)C.
CompareTo : 문자열 비교 (같으면 0, 작으면 음수, 크면 양수)D.
Equals or == : 문자열의 동일 여부 반환E.
StartsWith 메소드F.
EndWith 메소드콘솔 기반 응용 – 문자열 거꾸로 출력
1.
콘솔 창에 다음과 같이 사용자가 입력한 문자열을 거꾸로 출력하는 프로그램을 개발하시오.Project: ReverseSentence
Hint)
string 클래스 활용
콘솔 기반 응용 – 문자열 구분하여 출력
1.
사용자가 입력한 문자열을 공백(“ “)과 콤마(“,”)로 구분하여 출력하는 프로그램을 개발하시오.Project: StringSplit
콘솔 기반 응용 – 문자열 비교하여 출력
1.
사용자가 입력한 문자열을 “Hello”와 비교하여 큰지, 작은지, 같은지 출력하는 프로그램을 작성하시오.2.
조건: 사용자가 exit를 입력하면 종료Project: StringCompare
콘솔 기반 응용 – 부분 문자열의 개수 출력
1.
다음과 같은 “abracadabra abracadabra” 문자열이 있다고 가정하자.2.
사용자가 입력한 부분 문자열이 몇 개 포함되어 있는지 출력하는 프 로그램을 작성하시오.Project: StringSearch
콘솔 기반 응용 – 문자열 조작 함수들
1.
Substring 메소드A.
문자열의 부분을 복사해서 새로운 문자열을 만들어 반환2.
Concat 메소드 또는 + 연산자A.
원본 문자열들을 결합한 새 문자열을 만들어 반환3.
Replace 메소드A.
문자열의 부분 문자열을 새로운 부분 문자열로 치환한 결과를 새로운 문자열로 만들어 반환4.
ToLower 메소드A.
문자열의 소문자 버전을 반환5.
ToUpper 메소드A.
문자열의 대문자 버젼을 반환6.
Trim 메소드A.
문자열의 모든 공백 문자를 제거한 결과를 새로운 문자로 반환콘솔 기반 응용 – 문자열 조작
1.
다음과 같이 “abcdefghijklmnopqrstuvwxyz” 문자열이 있을때 첫번째 문자부터 2개씩 넘어가며 *로 변경하는 프로그램을 작성하시오.2.
조건) char 배열을 사용하지 않고 구현하시오.Project: StringModify
콘솔 기반 응용 – Char 조작 함수
1.
대부분의 메소드는 static 형A.
IsDigitB.
IsLetterC.
IsLetterOrDigitD.
IsLowerE.
IsUpperF.
ToLowerG.
ToUpperH.
IsPunctuationI.
IsSymbolChar.IsDigit(character);
Char.IsLetter(character);
Char.IsLower(character);
Char.IsUpper(character);
파일 입출력 – StreamReader / StreamWriter
1.
StreamReader 예StreamReader sr = new StreamReader(“filename.txt”);
while(sr.Peek() >= 0) {
string strLine = sr.ReadLine();
//
}
sr.Close();
파일 입출력 – StreamReader / StreamWriter
1.
StreamWriter 예StreamWriter sw = new StreamWriter(“filename.txt”);
sw.WriteLine(strLine);
sw.Close();
파일 입출력 통합 코드
public static void Main(string[] args)
{ StreamWriter sw = new StreamWriter("d:/csharpio.txt");
for (int i = 0; i < 15; i++)
{ string aLine = string.Format("This is a test line {0}", i);
sw.WriteLine(aLine);
}sw.Close();
StreamReader sr = new StreamReader("d:/csharpio.txt");
while (sr.Peek() >= 0)
{ string aLine = sr.ReadLine();
Console.WriteLine("R: " + aLine);
}
sr.Close();
}
File 클래스
1.
파일 존재 여부 등 확인 방법A.
File.Exists(“Filename”) == true / falseB.
콘솔 기반 응용 – 3개 도형 종류 출력
1.
상속 관계를 이용하여 3개 도형에 대하여 종류를 출력하는 코드를 완 성하시오.2.
조건) 부모 클래스: Shape자식 클래스: Rectangle, Circle, Triangle
Shape[] sList = new Shape[100];
sList[0] = new Circle();
sList[1] = new Triangle();
sList[2] = new Rectangle();
Method: string getType();
Project: ShapeTypeE - Error ShapeTypeV - Virtual
Hint)
virtual + override
1.
상속 관계를 이용하여 3개 도형에 대하여 종류 및 크기를 출력하는 코드를 작성하시오.2.
조건) getType() 함수 구현으로 도형 종류를 판별하지 않고 구현콘솔 기반 응용 – 3개 도형 종류 출력
class Shape {
}
class Circle : Shape {
}
class Triangle : Shape {
}
class Rectangle : Shape {
Project: ShapeTypeIS
}
콘솔 기반 응용 – 3개 도형 종류 출력 (Base 활용)
1.
상속 관계를 이용하여 3개 도형에 대하여 종류 및 크기를 출력하는 코드를 작성하시오.2.
조건) 부모의 getType() 호출하여 구현Project: ShapeTypeBase
콘솔 기반 응용 – 클래스 형변환 (is, as)
1.
is 연산자A.
형변환 가능한지 검사하며 형변환 가능하면 true를 반환2.
as 연산자A.
형변환 가능하면 실제로 형변환을 수행하고, 형변환 불가능 시 예외를 발생하지 않고 null 반환Bird b = (Bird)a; // Unsafe – possible , //InvalidCastException if (a is Bird) // Safe
b = (Bird) a;
b = a as Bird; // Convert, no exception if (b == null) // not a bird
콘솔 기반 응용 – 다수의 도형 크기 출력
1.
다음과 같이 도형에 대한 정보를 입력받고 크기를 출력하는 프로그 램을 구현하시오.2.
메뉴 예: Select Action (1. Input Object, 2. Show Size, 3. Exit) ? 13.
도형 예: Triangle, Rectangle, Circle4.
실행 예Project: ShapeList