POCU 강의
6. 문자열과 키보드 입력
차나히
2024. 5. 20. 07:54
✔️ 문자열 (string)
- 문자열이란?
- 여러 개의 문자가 모인 집합체
- string 이라는 단어에서 알 수 있듯, 문자가 줄줄이 연결된것이라 생각하면 된다.
- 문자열은 큰 따옴표("") 로 감싸야 한다.
- 문자열 끼리 사칙 연산이 가능할까?
- 문자열과 문자열을 + 연산자로 더하면 두 문자열은 합쳐진다.
- 또한 문자열과 숫자를 + 연산자로 더하면 문자열로 합쳐진다.
- 단, + 연산자를 제외한 산술 연산자로 연산하는것은 불가능하다.
- 두 문자열이 같은지 확인하기
- == 연산자를 이용하여 확인할 수 있다.
- 두 문자열이 같은지 확인하는 연산자 이며, 결과값으로는 Boolean 형 변수가 나오게 된다.
- 단, 일부 다른 프로그래밍 언어에서는 쓰지 못하거나 다른 결과가 나올 수도 있다.
- 이렇게 언어마다 동작 방식이 다른 이유는 문자열이 기본 자료형이 아니기 때문이다!
- 큰 따옴표 출력하기
- 일반적인 문자열 출력 방식으로는 큰 따옴표를 출력할 수 없음.
- 이를 위해서는 특별한 방법이 필요하며, 역슬래시를 출력하고자 하는 따옴표 앞에 붙여서 써주면 해당 따옴표가 가지는 문법적인 의미를 없애고 단순한 문자열로 보게 한다.
- 이 역슬래시를 이용하여 시작하는 특수 문자를 "이스케이프 문자" 라고 한다. 종류는 구글링해서 찾아보자
- 문자열 포맷팅
- string.Format() 을 이용하면 문자열 포맷팅이 가능
- 소괄호 안에있는 데이터를 형식에 맞춰 결합.
- 문장 안에 {0},{1} 과 같은 인덱싱을 이용하여 원하는 값을 대입할 수 있음.
- 만일 {0} 을 두번쓰면, 해당하는 변수가 두번 쓰인다.
- 이러한 포맷팅은 Console.WriteLine() 에서도 사용할 수 있음.
- 문자열 정렬
- "{<인덱스>,<정렬 길이>}" 형식을 이용하면 문자열을 정렬할 수 있다.
- string.Format() 에서도 동일하게 사용이 가능하며, 기본은 우측정렬.
- 만일, 왼쪽 정렬을 하고 싶다면 정렬 길이에 음수를 넣어주면 된다.
- 소수점 출력
- "{<인덱스>:f<소수점 이하 자릿수>}" 형식을 사용하면 소수점을 원하는것만큼 출력이 가능하다.
- string.Format() 에서도 동일하게 사용이 가능하며, 정수형도 사용이 가능하고, 반올림을 하여 출력된다.
- 10진수를 16진수로 출력하기
- "<인덱스>:x<자릿수>" 형식을 사용하면 10진수를 16진수로 출력이 가능하다.
- string.Format() 에서 동일하게 사용이 가능하며, 정수형만 가능하다.
- 문자열 보간
- 문자열 앞에 $ 를 붙여서 사용할 수 있다.
- 대체될 문자열을 "{<변수명>}" 으로 표현.
- $"안녕하세요 {name} 학생 입니다"
- 작성한 그대로 출력하기
- 문자열에서 특수문자를 출력할 때, 역슬래시를 사용한다고 했는데, 이걸 그대로 출력하고 싶다면 @ 기호를 사용하면 된다.
- string.Format() 을 이용하면 문자열 포맷팅이 가능
✔️ 키보드 입력
- Console.ReadLine()
- ReadLine 은 한줄을 읽다 로 해석할 수 있음. 즉 명령프롬프트에서 한 줄을 읽어내는 함수라고 추측할 수 있다.
- 위 함수를 이용하면 엔터키가 입력되기전까지의 값을 반환하며 키보드로부터 받은 값은 반드시 문자열 형으로 반환한다.
- 만일, 문자열을 정수형으로 변환할 수 있을까?
- 문자열을 정수형으로 묵시적, 명시적으로 변환할 수 있는 기능은 없음.
- 해결할 수 있는 방법은 Parse 함수를 이용해야함.
- int.Parse("200");
- Parse 는 해석하다 라는 의미를 가진 단어. 즉, 소괄호 안에 들어있는 문자열을 무언가로 해석한다고 볼 수 있음.
- 즉, 이 함수는 문자열을 int 로 변환하는 기능을 가진다.
- long, float 등 다른 기본형 변수들도 Parse 기능을 가진다
- 다른 프로그래밍 언어에도 이런 유사한 함수들이 존재한다.
- 문자열이 숫자 외의 값을 가질 경우 예외를 발생시킨다.