[C#] 연산자와 문자열 처리 ⭐⭐

업데이트:

카테고리:

태그: ,




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# 연산자와 문자열 처리


참고 : 유니티 C#
TOP


📔

댓글남기기