C#프로그래밍 02 : 문자열

LeeWonjin·2022년 3월 17일
0

[학부]C#프로그래밍

목록 보기
2/21

문자열 서식

{0}, {1}, ..., {n}을 서식항목 이라 한다.

string str = string.Format("0번 : {0}, 1번 : {1}, 2번 : {2}", "a", "b", "c");

// "0번 : a, 1번 : b, 2번 : c"
Console.WriteLine(str); 
Console.WriteLine("0번 : {0}, 1번 : {1}, 2번 : {2}", "a", "b", "c");

서식항목 옵션

{ 첨자, 맞춤 : 서식문자열 }

Console.WriteLine(string.Format("{0, -5}뒤에붙음", "앞에있음")); 
Console.WriteLine("{0, 10}뒤에붙음", "앞에있음");
Console.WriteLine("{0, -10}{1,10}{2,10}", "1번", "2번", "3번");

/*
"앞에있음 뒤에붙음"
"      앞에있음뒤에붙음"
"1번                2번        3번"
*/

수 서식화 문자열

알파벳 + 자릿수 조합으로 사용

  • D : 10진수
  • E : E표기
  • F : 고정소수점
  • N : 콤마구분
  • X : 16진수
Console.WriteLine("{0:D}  {1:D10}", 53, 53);
Console.WriteLine("{0:E}  {1:E0}", 53.5353, 53.5353);
Console.WriteLine("{0:F}  {1:F5}", 53.5353, 53.5353);
Console.WriteLine("{0:N}  {1:N5}",53535353, 53535353);
Console.WriteLine("{0:X}  {1:X20}", 53, 53);

/*
53  0000000053
5.353530E+001  5E+001
53.54  53.53530
53,535,353.00  53,535,353.00000
35  00000000000000000035
*/

날짜시간 서식화 문자열

  • y 연도
  • M 월
  • d 일
  • h 시(12시간) / H 시(24시간)
  • m 분
  • s 초
  • tt 오전 오후
  • ddd 약식요일(월) / dddd ddd+"요일"(월요일)
using System;
using System.Globalization;

DateTime dt = new DateTime(2022, 03, 17, 21, 5, 3);
Console.WriteLine(dt);

Console.WriteLine("{0:yyyy-MM-dd(dddd) tt HH:mm:ss}", dt);
Console.WriteLine(dt.ToString("yyyy-MM-dd(dddd) tt HH:mm:ss"));

Console.WriteLine("\n");
string str = "yyyy-MM-dd(dddd) tt HH:mm:ss";
CultureInfo kr = new CultureInfo("ko-KR");
CultureInfo us = new CultureInfo("en-US");
Console.WriteLine(dt.ToString(str, kr));
Console.WriteLine(dt.ToString(str, us));

/*
2022-03-17 오후 9:05:03
2022-03-17(목요일) 오후 21:05:03
2022-03-17(목요일) 오후 21:05:03


2022-03-17(목요일) 오후 21:05:03
2022-03-17(Thursday) PM 21:05:03
*/

문자열 보간

$"string"의 형태로 사용한다. 보간할 내용은 { }의 형태로 string안에 포함시킨다.

Console.WriteLine($"안녕");
Console.WriteLine($"{100}asdfasdf{5}");
Console.WriteLine($"결과 : {(53 > 5 ? "" : "거짓")}");
/*
안녕
100asdfasdf5
결과 : 참
*/

문자열 메소드

검색

string str = "wonjin yi";
Console.WriteLine(str.IndexOf('i')); // 4
Console.WriteLine(str.LastIndexOf('i')); // 8
Console.WriteLine(str.StartsWith("won")); // True
Console.WriteLine(str.EndsWith('y')); // False
Console.WriteLine(str.Contains("on")); // True
Console.WriteLine(str.Replace("yi", "lee")); // wonjin lee
  • IndexOf(ch or str)
  • LastIndexOf(ch or str)
  • StartsWith(ch or str)
  • EndsWith(ch or str)
  • Contains(ch or str)
  • Replace(기존, 바뀔것)

변형

string str = " wonJIN Yi ";
Console.WriteLine(str.ToLower()); // " wonjin yi "
Console.WriteLine(str.ToUpper()); // " WONJIN YI "

Console.WriteLine(str.Insert(1, "I AM ")); // " I AM wonJIN Yi "
Console.WriteLine(str.Remove(6, 3)); // " wonJIi "

Console.WriteLine($"앞{str.Trim()}뒤"); // "앞wonJIN Yi뒤"
Console.WriteLine($"앞{str.TrimStart()}뒤"); // 앞wonJIN Yi 뒤"
Console.WriteLine($"앞{str.TrimEnd()}뒤");  // 앞 wonJIN Yi뒤"
  • ToLower()
  • ToUpper()
  • Insert()
  • Remove()
  • Trim()
  • TrimStart()
  • TrimEnd()

분할

string str = "wonJIN Yi";
foreach (string el in str.Split(' ')) {
	Console.WriteLine(el); // "wonJin", "Yi"
}

Console.WriteLine(str.Substring(0, 6)); // "wonJIN"
  • Split(구분자)
  • SubString(시작위치, 몇개)
profile
노는게 제일 좋습니다.

0개의 댓글