본문 바로가기
C#

연산자와 문자열 처리

by 김차루 2024. 5. 1.

1. 산술, 관계, 논리 연산자 사용법

1) 산술연산자

    산술 연산자는 숫자를 대상으로 사용된다.

연산자 설명
+ 덧셈
- 뺄셈
* 곱셈
/ 나눗셈
% 나머지

 

2) 관계연산자

    관계 연산자는 두 값을 비교하여 참(True) 또는 거짓(False)값을 반환한다.

연산자 설명
== 같음
!= 다름
>
< 작음
>= 크거나 같음
<= 작거나 같음

 

3) 논리연산자

    논리 연산자는 참(True) 또는 거짓 (False) 값을 대상으로 사용된다.

연산자 설명
&& 논리곱 (AND)
|| 논리합 (OR)
! 논리부정 (NOT)

 

2. 비트 연산자

1) 비트연산자

    비트 연산자는 데이터의 비트 단위로 연산을 수행하는 연산자이다.

연산자 설명
& (AND) 두 비트 값이 모두 1일 때 1을 반환
| (OR) 두 비트 값 중 하나라도 1일 때 1을 반환
^ (XOR) 두 비트 값이 서로 다를 때 1을 반환
~ (NOT) 비트 값의 보수(complement)를 반환
<< (왼쪽 시프트) 비트를 왼쪽으로 이동
>> (오른쪽 시프트) 비트를 오른쪽으로 이동
int a = 0b1100; // 12 (2진수)
int b = 0b1010; // 10 (2진수)

int and = a & b; // 0b1000 (8)
int or = a | b; // 0b1110 (14)
int xor = a ^ b; // 0b0110 (6)

int c = 0b1011; // 11 (2진수)
int leftShift = c << 2; // 0b101100 (44)
int rightShift = c >> 1; // 0b0101 (5)

int d = 0b1100; // 12 (2진수)
int bit3 = (d >> 2) & 0b1; // 1 (3번째 비트)
d |= 0b1000; // 0b1100 | 0b1000 = 0b1100 (12)

 

3. 복합 대입 연산자와 증감 연산자 활용

1) 복합 대입 연산자

    변수에 값을 할당하는 대입 연산자(=) 외에도, 다양한 복합 대입 연산자를 제공한다. 복합 대입 연산자는 변수에 연산을 수행한 결과를 정하는 연산자이다.

연산자 예시 설명
+= x += y; x = x + y;
-= x -= y; x = x - y;
*= x *= y; x = x* y;
/= x /= y; x = x / y;
%= x %= y; x = x % y;

 

2) 증감 연산자

    증감 연산자는 변수의 값을 1 증가시키거나 감소시키는 연산자이다.

연산자 설명
++ 1 증가
-- 1 감소

 

4. 연산자 우선순위

1) 연산자 우선순위란

  • 연산자 우선순위는 수식 내에서 연산자가 수행되는 순서를 결정한다.
  • 연산자 우선순위에 따라 연산의 결과가 달라질 수 있으므로 중요한 개념이다.

2) C#의 주요 연산자 우선순위

    다양한 우선순위를 가지고 있으며, 높은 우선순위의 연산자가 먼저 수행된다.

  1. 괄호() : 괄호로 감싸진 부분은 가장 높은 우선순위로 먼저 계산된다.
  2. 단항 연산자 : 산술 연산자들 (++, --, +, -, ! 등) 은 단항 연산자보다 우선순위가 낮다.
  3. 산술 연산자 : 산술 연산자들 (*, /, %, +, -) 는 산술 연산자보다 우선순위가 낮다.
  4. 시프트 연산자 : 시프트 연산자 (<<, >>)는 산술 연산자보다 우선순위가 낮다.
  5. 관계 연산자 : 관계 연산자들 (<, >, <=, >=, ==, !=)는 시프트 연산자보다 우선순위가 낮다.
  6. 논리 연산자 : 논리 연산자들 (&&, ||)는 관계 연산자보다 우선순위가 낮다.
  7. 할당 연산자 : 할당 연산자들 (=, +=, -=, *=, /= 등)는 논리 연산자보다 우선순위가 낮다.

 

5. 문자열 처리 기능 및 메서드

1) 문자열 생성 ( new string() )

string str1 = "Hello, World!"; // 리터럴 문자열 사용
string str2 = new string('H', 5); // 문자 'H'를 5개로 구성된 문자열 생성

 

2) 연결 ( + ) : 문자열을 공백으로 구분하여 연결

string str1 = "Hello";
string str2 = "World";
string str3 = str1 + " " + str2;

 

3) 분할 ( Split('분할기준점') ) : str 문자열을 쉼표로 구분하여 분할한 문자열 배열 words를 생성

string str = "Hello, World!";
string[] words = str.Split(',');

 

4) 검색 ( .IndexOf ) : 문자열의 첫 번째 인덱스를 찾아 index 변수에 저장

string str = "Hello, World!";
int index = str.IndexOf("World");

 

5) 대체 ( Replace ) : World 문자열을 Universe 문자열로 대체한 새로운 문자열 newStr로 생성

string str = "Hello, World!";
string newStr = str.Replace("World", "Universe");

 

6) 변환

string str = "123";
int num = int.Parse(str);

  ㄴ문자열을 숫자로 변환

int num = 123;
string str = num.ToString();

  ㄴ 숫자를 문자열로 변환

 

7) 비교

string str1 = "Hello";
string str2 = "World";
bool isEqual = str1 == str2;

  ㄴ문자열 값 비교

string str1 = "Apple";
string str2 = "Banana";
int compare = string.Compare(str1, str2);

  ㄴ문자열 대소 비교 (아무 옵션도 설정하지 않고 비교하는 경우 문자열을 사전식으로 비교하며, 대소문자를 구분한다. 즉, 'A'는 'a'보다 작다.)

 

8) 포멧팅

string name = "John";
int age = 30;
string message = string.Format("My name is {0} and I'm {1} years old.", name, age);

  ㄴ 문자열 형식화 : name 변수와 age 변수의 값을 문자열 message에 삽입

string name = "John";
int age = 30;
string message = $"My name is {name} and I'm {age} years old.";

  ㄴ name 변수와 age 값을 문자에 삽입

'C#' 카테고리의 다른 글

반복문  (1) 2024.05.01
조건문  (0) 2024.05.01
변수와 자료형  (0) 2024.05.01
프로그래밍 기본 요소  (0) 2024.04.26