decimal형과 float형은 접미사가 필요함
decimal d = 1.234m;
float f = 1.23455f;
C#도 문자열과 더하면 자동변환
WriteLine안에 {}를 통해 출력 폼을 정해줄 수 있다. (각 {}안에는 ,뒤의 객체들이 들어감)
String.Format을 이용하여 해당 문자열을 문자열에 저장할 수 있다.
using System;
namespace asd
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("10 이하의 소수: {0}, {1}, {2}, {3}",2,3,5,7);
string primes;
primes = String.Format("10 이하의 소수: {0}, {1}, {2}, {3}",2,3,5,7);
Console.writeLine(primes);
}
}
}
C#은 자료형이 다른 변수들을 함께 출력할 수 없다.
int v1 = 100;
double v2 = 1.23;
Console.WriteLine(v1, v2);
//불가
ToString() 혹은 문자열과의 더하기로 출력해야함.
폼을 통해서 출력할 수도 있음
$를 이용하는 방법도 있다. {}안에 변수 넣기
Console.WriteLine(v1.ToString() + "," + v2.ToString());
Console.WriteLine("v1 = {0}, v2 = {1}",v1,v2);
Console.WriteLine($"v1 = {v1}, v2 = {v2}");
형식지정자(Axx로 정밀도를 지정할 수 있으나 정밀도는 선택사항임)
c: 통화
d: 십진수(최소 자릿수 지정)
e: 지수(과학)
f: 고정자릿수
g: 유효자릿수
n: 천단위 구분 기호
p: 퍼센트
r: 라운드 트립
x: 16진수
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(
"(C) Currency: {0:C}\n" +
"(D) Decimal: {0:D}\n" +
"(E) Scientific: {1:E}\n" +
"(F) Fixed point: {1:F}\n" +
"(N) Number: {0:N}\n" +
"(P) Percent: {1:P}\n" +
"(R) Round-trip: {1:R}\n" +
"(X) Hexadecimal: {0:X}\n",
-12345678,-1234.5678f
);
}
}
}
///////출력//////////////////////////////////////////////
(C) Currency: -\12,345,678
(D) Decimal: -12345678
(E) Scientific: -1.234568E+003
(F) Fixed point: -1234.57
(N) Number: -12,345,678.00
(P) Percent: -123,456.80%
(R) Round-trip: -1234.56775
(X) Hexadecimal: FF439EB2
decimal value = 123456.789m;
Console.WriteLine("잔액은 {0:C2}원 입니다.", value);
Console.WriteLine("잔액은 {0,20:C2}원 입니다.", value);//해당 형식지정자는 20자리를 차지하고 남는부분은 앞부분에 빈칸으로 채워짐
///출력///
잔액은 \123,456.79원 입니다.
잔액은 \123,456.79원 입니다.
커스텀 형식지정자
#: 0이 앞에 붙지 않음
0: 0이 앞에 붙음
. : 소수점
, : 천 자리
; : 섹션 구분 기호
ex) {"#,#.##"} : 세 자리마다 콤마 표시를 하고 소수점 두 자리 까지 표시
섹션구분기호: 숫자를 표시할 때 양수, 음수, 0의 값을 세미콜론으로 구분하여 제각기 다른 포맷으로 출력할 수 있다.
실수 표현의 차이
float: 유효 숫자가 7자리, 가장 빠름, decimal보다 더 크거나 작은 값 표현 가능, 접미사 필요
double: 유효 숫자가 15~16자리, decimal보다 더 크거나 작은 값 표현 가능, 접미사 필요 없음(default)
decimal: 유효 숫자가 28~29자리(금융 프로그램에서 반드시 사용), 가장 느림, 접미사 필요
문자열 숫자 변환
Parse(), TryParse(): 변환 실패 시 Parse는 에러, TryParse는 false를 반환
ex) Int32.Parse(문자열)/...double.TryParse(문자열)...
Convert.ToDouble(), Convert.ToInt32()로 같은 역할 수행 가능
Convert는 문자열 뿐 만 아니라 다른 여러 자료형 사이의 변환도 지원함
ex) Convert.ToString(num,2) num을 2진수로 변환, Convert.ToInt32(dnum,2) 2진수 문자열 dnum을 정수로 변환
오버플로우 오류를 잡기 위해선 checked 키워드를 사용해야함
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
int X = int.MaxValue, y = 0;
checked
{
try
{
y = X + 10;
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
Console.WriteLine(y);
}
}
}
}
XOR연산자 ^가 있다.
string은 불변
string 클래스의 메소드들:
insert
Contains
CompareTo
IndexOf: 특정 문자가 처음 등장하는 위치 반환
LastIndexOf: 특정 문자가 처음 등장하는 마지막 위치 반환
PadLeft: string 앞에 특정 문자를 삽입하여 글자 수를 맞춥니다.
PadRight: string 뒤에 특정 문자를 삽입하여 글자 수를 맞춥니다.
Remove: string에서 substring 삭제
Replace: 문자 혹은 substring을 다른 문자 혹은 substring으로 대체
ToLower
ToUpper
Trim: 앞뒤 공백or특정문자 제거
TrimEnd: 뒤의 공백or특정문자 제거
TrimStart: 앞의 공백or특정문자 제거
Split
CopyTo: 복사(=쓰면 같은 객체가 됨)
Substring: 특정 문자에서 끝까지의 substring 추출
정적 메소드(String.메소드() 형태로 사용)
Concat: 한 개 이상의 substring을 합쳐서 새로운 string을 만든다.
Compare
Copy
Format: 문자열을 format에 맟추어 변경
Join: 문자열 배열을 모아 문자열을 만든다, 구분자 추가 가능
분리할 구분자를 여러개 사용 가능
char[] delimiters = {',',' ','-'};
string[] v = s.Split(delimiters);
'C#' 카테고리의 다른 글
2022.11.01.TIL (0) | 2022.11.01 |
---|