낑깡의 게임 프로그래밍 도전기

C# 데이터 표현 본문

C#

C# 데이터 표현

낑깡겜플밍 2025. 7. 7. 10:50
반응형

1. 문자열 가공(Contains, Replace, Trim, ToLower, 기타)

bool isContains = str.Contains("s"); //bool값으로 리턴

string newWord = str.Replace("전", "후"); //바뀐 값을 리턴

strinf trim = str.Trim(); //앞뒤 공백 지우기
TrimStart(); //앞공백  TrimEnd(); //뒷공백

string toLower = str.ToLower(); //소문자 전환  ToUpper(); //대문자 전환

string subString = str.Substring(0,3); //0~3번 인덱스 잘라줘  
string Substring2 = str.[0..3]; //위의 축약본
ex) 게시판 글 올릴 때 50번까지 자르고 뒤에는 ...으로 만들 때 쓰기도 한다

int indexOf = str.IndexOf("잘"); //어딧는지 검색

string letter = "여진, 민재, 호동";
string[] arrLetter = letter.Split(','); //,기준으로 자르기
여진
민재
호동

 

2. 문자열 가공(string.Format, ToString(), $, +, StringBuilder) 

string.Format은 반올림 통화표시, 1의자리 앞에 0표시, 천의자리 콤마 표시, 절대값표시 등 다양하게 쓸 수 있다.

stirng name = "민아";

int poing = 3000;

Console.WriteLine(name + "고객님," + point + "입니다."); //레퍼런스 형식이라 string이 복사되어 클래스를 매번 생성하게 됨. 그래서 실무에서 많이 쓰면 문제발생 확률이 높다

Console.WriteLine(string.Format("{0} 고객님, {1} 입니다.", name, point))

Console.WriteLine($"{name} 고객님, {point} 입니다.") //위의 보간법

 

double sPoint = 234.239

Console.WriteLine(Math.Round(sPoint, 2)); //234.23 //소수점 지정

Console.WriteLine(string.Format("{0:0.00}", sPoint)) //234.23

Console.WriteLine(string.Format("{0:c}", sPoint)); // ₩234,234,234 //자동으로 , 찍힘

Console.WriteLine(point2.Replace(point2.Substring(0,1), point2.Substring(0,1)+" ")); // ₩ 234,234,234

Console.WriteLine(string.Format.("{0:D2}",3)); //03 //D : 정수 //2 : 자리수

Console.WriteLine(string.Format("0:N0", 123123123)); //123,123,123 //N : 콤마표시 //0 : 소수점 0번째 까지

Console.WriteLine(Math.Abs(-123123)); //123123 //절대값

Console.WriteLine((int)-123.123)); //-123 //소수점X

Console.WriteLine(23123123.ToString("N0"));//231,231,23 //string.Format과 호환됨

 

StringBuilder

using System.Text;

StringBuilder sb = new StringBuilder();

sb.Append(name); //AppendLine은 한 줄 내리는 거

sb.Append("고객님,");

sb.Append(point.ToString());

sb.Append("입니다.")

Console.WriteLine(sb.Tostring); //민아 고객님, 3000 입니다.

ex) 움직임 데이터를 대량으로 받을 때 
// "12 13 14 15" → "CDEF" //아스키코드로 바꿔서 글자 들어오는 걸 줄임
//string으로 할때 5분이상 걸리던 것이 스트링 빌드로 하니 1초 걸렸다고 한다.

 

3. 날짜와 시간 가공

//local 시간
Console.WriteLine(DateTime.Now); //현재시간 //2023-11-18 오전 1:29:28 형식

//utc 전세계 공통시간
Console.WriteLine(DateTime.UtcNow);

//toLocal
DateTime dateTime = DateTime.UtcNow;
Console.WriteLine(dateTime.ToLocalTime());

//toUtc
Console.WriteLine(DateTime.Now.ToUniversalTime());
//보통 서버로 전송할 땐 가공할때 오류가 날 수 있어서 타임스템프를 쓴다

// ToTimeStamp (유닉스 시간을 기준)
DateTimeOffset dateTimeOffset = DateTimeOffset.UtcNow;
Console.WriteLine(dateTimeOffset.ToUnixTimeSecond());b 
//ToUnixTimeMilliseconds() //밀리세컨드 자리까지 상세히 나오는 것

//ToLocal
Console.WriteLine(DateTimeOffset.FromUnixTimeSecond(dateTimeOffset.ToUnixTimeSeconds()));

//원하는 형식 출력
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss z")); //z는 Utc시간 오프셋

//DateTime에 시간 더하기 빼기
Colsole.WriteLine(DateTime.Now.AddHours(3)); //빼기는 -3 //Hours말고 여러가지 있음

Console.WriteLine(DateTime.Now.Hours); //특정 시간 가져오기 //Hours말고 여러가지 있음
//DayOfWeek하면 요일도 가져옴

//DateTime끼리 빼기
TimeSpan timeSpen = DateTime.Now - DateTime.Now.AddHours(232);
Console.WriteLine(timeSpan);
//operator기능을 써서 클래스끼리 뺀것임// DateTime끼리 빼서 TimeSpan 리턴
ex) 게임에서 캐릭터마다의 스탯을 뺄때 하나하나 씩 비교하는건 비효율적이기에 만들어진 클래쓰끼리 빼기 기능 중 하나다
// TimeSpand을 몰랐을 때 var 타입으로 쓰고 마우스를 가져다대어 확인가능


Console.WriteLine(timeSpan.Hours); //24시간 단위 생략하고 나옴

Console.WriteLine(timeSpan.TotalHours); //차이나는 값 다 표현

 

반응형