[C#] 연산자와 문자열 처리 ⭐⭐
카테고리: Sparta C Sharp
C# 연산자와 문자열 처리
C# 연산자와 문자열 처리
1. 산술, 관계, 논리 연산자 사용법
산술연산자
연산자 | 설명 |
---|---|
+ | 덧셈 |
- | 뺄셈 |
* | 곱셈 |
/ | 나눗셈 |
% | 나머지 |
관계연산자
관계 연산자는 두 값을 비교하여 참(True) 또는 거짓(False) 값을 반환합니다.
연산자 | 설명 |
---|---|
== | 같음 |
!= | 다름 |
> | 큼 |
< | 작음 |
>= | 크거나 같음 |
<= | 작거나 같음 |
논리연산자
논리 연산자는 참(True) 또는 거짓(False) 값을 대상으로 사용됩니다.
연산자 | 설명 |
---|---|
&& | 논리곱(AND) |
|| | 논리합(OR) |
! | 논리부정(NOT) |
이거나 &&, 또는 || , 그렇지않다면 !
2. 비트연산자
비트 단위로 데이터를 조작하고, 이진수 연산
연산자 | 설명 |
---|---|
& (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번째 비트) 1 & 1 1
d |= 0b1000; // 0b1100 | 0b1000 = 0b1100 (12)
- 강의에서 int bit3 = (d » 2) & 0b1; 결과가 0 이라고 설명하였는대
- 1인거 같아서 비쥬얼스튜디오에서 돌려서 확인해 보았다.
3. 복합 대입 연산자와 증감 연산자 활용
변수를 더 편리하게 조작하고 값을 증감시킬 수 있어요.
1). 복합 대입 연산자
C#에서는 변수에 값을 할당하는 대입 연산자(=) 외에도, 다양한 복합 대입 연산자를 제공합니다.
복합 대입 연산자는 변수에 연산을 수행한 결과를 저장하는 연산자입니다.
연산자 | 예시 | 설명 |
---|---|---|
+= | 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감소 |
후위 증감연산자
작업 전의 x 값입니다.
x++, x- -
int i = 3;
Console.WriteLine(i); // output: 3
Console.WriteLine(i++); // output: 3
Console.WriteLine(i); // output: 4
전위 증감연산자
작업 후의 x 값입니다.
++x, - -x
double a = 1.5;
Console.WriteLine(a); // output: 1.5
Console.WriteLine(++a); // output: 2.5
Console.WriteLine(a); // output: 2.5
4. 연산자 우선순위
- 연산자 우선순위는 수식 내에서 연산자가 수행되는 순서를 결정합니다.
- 연산자 우선순위에 따라 연산의 결과가 달라질 수 있으므로 중요한 개념입니다.
1. 괄호 (): 괄호로 감싸진 부분은 가장 높은 우선순위로 먼저 계산됩니다.
2. 단항 연산자: 단항 연산자들(++, –, +, -, ! 등)은 괄호 다음으로 높은 우선순위를 가집니다.
3. 산술 연산자: 산술 연산자들(*, /, %, +, -)은 단항 연산자보다 우선순위가 낮습니다.
4. 시프트 연산자: 시프트 연산자(«, »)는 산술 연산자보다 우선순위가 낮습니다.
5. 관계 연산자: 관계 연산자들(<, >, <=, >=, ==, !=)는 시프트 연산자보다 우선순위가 낮습니다.
6. 논리 연산자: 논리 연산자들(&&, ||)는 관계 연산자보다 우선순위가 낮습니다.
7. 할당 연산자: 할당 연산자들(=, +=, -=, *=, /= 등)는 논리 연산자보다 우선순위가 낮습니다.
5. 문자열 처리 기능 및 메서드
1).문자열 생성(new)
string str1 = "Hello, World!"; // 리터럴 문자열 사용
string str2 = new string('H', 5); // 문자 'H'를 5개로 구성된 문자열 생성
2).연결(+)
이 코드는 str1 문자열과 str2 문자열을 공백으로 구분하여 연결한 새로운 문자열 str3을 생성합니다. string.Format을 더 자주 이용한다.
string str1 = "Hello";
string str2 = "World";
string str3 = str1 + " " + str2;
3).분할(Split)
string str = "Hello, World!";
string[] words = str.Split(',');
// 쉼표로 구분
4).검색 (IndexOf)
string str = "Hello, World!";
int index = str.IndexOf("World");
// 실행 경과 7이 나왔다.
- “World” 문자열의 첫 번째 인덱스를 찾아 index 변수에 저장
5).대체(Replace)
string str = "Hello, World!";
string newStr = str.Replace("World", "Universe");
- “World” 문자열을 “Universe” 문자열로 대체한 새로운 문자열 newStr을 생성합니다.
6).변환(Parse)
string str = "123";
int num = int.Parse(str);
int num = 123;
string str = num.ToString();
- 앞에서 본 형변환
7).비교(string.Compare)
//문자열 값 비교
string str1 = "Hello";
string str2 = "World";
bool isEqual = str1 == str2;
//문자열 대소 비교
string str1 = "Apple";
string str2 = "Banana";
int compare = string.Compare(str1, str2);
-
이 코드는 str1 문자열과 str2 문자열을 대소 비교한 후, compare 변수에 그 결과를 저장합니다.
- compare : ASCII 값 측면에서 값을 비교
- 두 문자열이 동일하면 0을 반환합니다.
- 첫 번째 문자열이 두 번째 문자열보다 크면 1 또는 0보다 큰 값을 반환합니다.
- 첫 번째 문자열이 두 번째 문자열보다 작으면 -1 또는 0보다 작은 값을 반환합니다.
8).포멧팅(string.Format, $)
// 문자열 형식화 string.Format
string name = "John";
int age = 30;
string message = string.Format("My name is {0} and I'm {1} years old.", name, age);
// 문자열 보간 $
string name = "John";
int age = 30;
string message = $"My name is {name} and I'm {age} years old.";
- {x} 부분을 , 뒤 순서대로 삽입
- 보간기능 위보다 더 간단하게 사용
정리 잡답
- 연산자를 사용할 때에는 연산자 우선순위를 항상 고려하여 코드를 작성하는 것이 중요합니다, 괄호를 사용하여 우선순위를 변경할 수 있습니다.
- 분할(
Split
), 검색(indexOf
), 대체(Replace
), 변환(Parse
), 비교(String.Compare
), 포멧팅(String.Format
,$
)
[C#] C# 연산자와 문자열 처리
댓글남기기