메소드의 형태 int/void 등은 반환값을 지정하는데 void는 찌꺼기가 따로 없다. int는 return ~~; 마지막에 ~~에 int 형태의 값을 넣어 줘야 한다.
개행 문자를 쓸 때, \n을 쓰거나 WriteLine 코드를 여러 개 활용할 수도 있지만 따옴표 세 개를 쓰면 좀 더 편하게 작업할 수 있다.
string a = """
이렇게
쓴다면
""" ;
Console.WriteLine(a);
// 이렇게
// 나온다
데이터를 받는 형태를 지정하지 않고 참조형태로 받을 수 있는 게 object인데 스택 영역과 힙 영역에 각각 주소값과 실제 값을 넣는다(박싱).
object a = 20 ; // 스택: a의 위치 (200번지) , 힙 : 20 저장
int b = (int)a;
object a에 저장된 알 수 없는 값을 숫자로 변환해 정수형 b에 옮겨 담는 것이 언박싱이다.
자료형이 담을 수 있는 한계를 넘어서는 걸 오버플로우 overflow 라고 하는데 이러면 원하지 않는 값이 출력될 수 있다. 1234567891234567891234567890 같은 값을 int에 넣으면 전혀 다른 값이 출력될 수 있다.
그래서 데이터는 보통 string 형태로 받는다고 한다.
배열 개념이지만 string 자체가 char의 집합체라서 string 배열의 각 원소를 쪼개면 자연스럽게 char로 나온다. 프로그래머스 문제를 풀 때 그래서 다시 char를 string으로 변환해야 했던 적이 있다.
문자열 → 숫자
: int.Parse(~); (변환하다)
: Convert.ToInt32(~);
숫자 → 문자열
: ~.toString();
IndexOf("") : 어디 있냐
Contains("") : 가지고 있냐 = 포함하냐
Replace("", "") : "앞"에 있는 걸 "뒤"에 있는 걸 바꿔라
Substring(~, ~) ; 알파벳/글자 단위로 잘라
Split() : 어절 단위로 잘라
삼항 연산자 (조건 연산자)
자료형 = 변수 ( 조건 ) ? 참일 때 변수값 : 거짓일 때 변수값 ;
// 증감 연산자
i++; // i = i + 1;
// 할당 연산자
i += n; // i = i + n;