[C#] 문자열(string) 메소드 종류 및 예시
1. 문자열 찾기
- IndexOf() - 현재 문자열 내에서 찾고자 하는 지정된 문자 또는 문자열의 위치를 찾습니다.
- LastIndexOf() - 현재 문자열 내에서 찾고자 하는 지정된 문자 또는 문자열의 위치를 뒤에서부터 찾습니다.
- StartsWith() - 현재 문자열이 지정된 문자열로 시작하는지를 평가합니다.
- EndsWith() - 현재 문자열이 지정된 문자열로 끝나는지를 평가합니다.
- Contains() - 현재 문자열이 지정된 문자열을 포함하는지를 평가 합니다.
- Replace() - 현재 문자열에서 지정된 문자열이 다른 문자열로 모두 바뀐 새 문자열을 반환합니다.
using static System.Console;
namespace StringSearch
{
internal class Program
{
static void Main(string[] args)
{
string greeting = "Good Morning";
WriteLine(greeting);
WriteLine();
// indexOf()
WriteLine("IndexOf 'Good' : {0}", greeting.IndexOf("Good")); // 0
WriteLine("IndexOf 'o' : {0}", greeting.IndexOf('o')); // 1
// LastIndexOf()
WriteLine("LastIndexOf 'Good' : {0}", greeting.LastIndexOf("Good")); // 0
WriteLine("LastIndexOf 'o' : {0}", greeting.LastIndexOf('o')); // 6
// StartsWith()
WriteLine("StartsWith 'Good' : {0}", greeting.StartsWith("Good")); // True
WriteLine("StartsWith 'Morning' : {0}", greeting.StartsWith("Morning")); // False
// EndsWith()
WriteLine("EndsWith 'Good' : {0}", greeting.EndsWith("Good")); // False
WriteLine("EndsWith 'Morning' : {0}", greeting.EndsWith("Morning")); // True
// Contains()
WriteLine("Contains 'Evening' : {0}", greeting.Contains("Evening")); // False
WriteLine("Contains 'Morning' : {0}", greeting.Contains("Morning")); // True
// Replace()
WriteLine("Replaced 'Morning' with 'Evening' : {0}",
greeting.Replace("Morning", "Evening")); // Good Evening
}
}
}
2. 문자열 수정
- ToLower() : 현재 문자열의 모든 대문자를 소문자로 바꾼 새 문자열을 반환합니다.
- ToUpper() : 현재 문자열의 모둔 소문자를 대문자로 바꾼 새 문자열을 반환합니다.
- Insert() : 현재 문자열의 지정된 위치에 지정된 문자열이 삽입된 새 문자열을 반환합니다.
- Remove() : 현재 문자열의 지정된 위치로부터 지정된 수만큼의 무자가 삭제된 새 문자열을 반환합니다.
- Trim() : 현재 문자열의 앞/뒤에 있는 공백을 삭제한 새 문자열을 반환합니다.
- TrimStart() : 현재 문자열의 앞에 있는 공백을 삭제한 새 문자열을 반환합니다.
- TrimEnd() : 현재 문자열의 뒤에 있는 공백을 삭제한 새 문자열을 반환합니다.
using static System.Console;
namespace StringModify
{
internal class Program
{
static void Main(string[] args)
{
WriteLine("Lower() : '{0}'", "ABC".ToLower()); // 'abc'
WriteLine("ToUpper() : '{0}'", "ABC".ToUpper()); // 'ABC'
WriteLine("Insert() : '{0}'", "Happy Friday!".Insert(5, " Sunny")); // 'Happy Sunny Friday!'
WriteLine("Remove() : '{0}'", "I Don't Love You".Remove(2, 6)); // 'I Love You'
WriteLine("Trim() : '{0}'", " No Spaces ".Trim()); // 'No Spaces'
WriteLine("TrimStart() : '{0}'", " No Spaces ".TrimStart()); // 'No Spaces '
WriteLine("TrimEnd() : '{0}'", " No Spaces ".TrimEnd()); // ' No Spaces'
}
}
}
3. 문자열 분할
- Split() - 현재 문자열을 지정된 문자를 기준으로 분리한 문자열의 배열을 반환합니다.
- SubString() - 현재 문자열을 지정된 위치로부터 지정된 수만큼의 문자로 이루어진 새 문자열을 반환합니다.
namespace StringSlice
{
internal class Program
{
static void Main(string[] args)
{
string greeting = "Good morning.";
Console.WriteLine(greeting.Substring(0, 5)); // Good
Console.WriteLine(greeting.Substring(5)); // morning.
Console.WriteLine();
string[] arr = greeting.Split(
new string[] {" "}, StringSplitOptions.None
);
Console.WriteLine("Word Count : {0}", arr.Length); // Word Count : 2
foreach (string element in arr)
{
Console.WriteLine("{0}", element);
}
// Good
// morning.
}
}
}
4. format() 메소드
- 4-1. 왼쪽/오른쪽 맞춤
using static System.Console
// 예시 코드
namespace StringFormatBasic
{
internal class Program
{
static void Main(string[] args)
{
string fmt = "{0,-20}{1,-15}{2, 30}";
WriteLine(fmt, "Publisher", "Author", "Title");
WriteLine(fmt, "Marvel", "Stan Lee", "Iron Man");
WriteLine(fmt, "Hanbit", "Sanghyun", "C# 7.0 Programming");
WriteLine(fmt, "Prentice Hail", "K&R", "The C# Programming Language");
}
}
}
- 4-2. 숫자 서식화
using static System.Console;
namespace StringFormatNumber
{
internal class Program
{
static void Main(string[] args)
{
// D : 10진수
WriteLine("10진수 : {0:D}", 123); // 123
WriteLine("10진수 : {0:D5}", 123); // 00123
// X : 16진수
WriteLine("16진수 : 0x{0:X}", 0xFF1234); // 0xFF1234
WriteLine("16진수 : 0x{0:X8}", 0xFF1234); // 0x00FF1234
// N : 숫자
WriteLine("숫자 : {0:N}", 123456789); // 123,456,789.00
WriteLine("숫자 : {0:N0}", 123456789); // 자릿수 0은 소숫점 이하를 제거함 // 123,456,789
// F : 고정소수점
WriteLine("고정소수점 : {0:F}", 123.45); // 123.45
WriteLine("고정소수점 : {0:F5}", 123.456); // 123.45600
// E : 공학용
WriteLine("공학 : {0:E}", 123.456789); // 1.2345678E+002
}
}
}
- 4-3. 날짜 및 시간 서식화
using System.Globalization;
using static System.Console;
/*
* - 서식 지정자(MSDN)
* y : 연도 : yy(두자리수 연도), yyyy(네 자릿수 연도)
* M : 월 : M(한 자릿수 월), MM(두 자릿수 월)
* d : 일 : d(한자릿수 일), dd
* h : 시(1~12) : h, hh
* H : 시(1~23) : H, HH
* m : 분 : m, mm
* s : 초 : s, ss
* tt : 오전/오후 : tt
* ddd : 요일 : ddd(약식 요일), dddd(전체 요일)
*/
namespace StringFormatDatetime
{
internal class Program
{
static void Main(string[] args)
{
DateTime dt = new DateTime(2023, 05, 26, 14, 54, 38);
WriteLine("12시간 형식 : {0:yyyy-MM-dd tt hh:mm:ss (ddd)}", dt); // 12시간 형식 : 2023-05-26 오후 02:54:38 (금)
WriteLine("24시간 형식 : {0:yyyy-MM-dd HH:mm:ss (dddd)}", dt); // 24시간 형식 : 2023-05-26 14:54:38 (금요일)
CultureInfo ciKo = new CultureInfo("ko-KR");
WriteLine();
WriteLine(dt.ToString("yyyy-MM-dd tt hh:mm:ss (ddd)}", ciKo)); // 2023-05-26 오후 02:54:38 (금)}
WriteLine(dt.ToString("yyyy-MM-dd HH:mm:ss (dddd)}", ciKo)); // 2023-05-26 14:54:38 (금요일)}
WriteLine(dt.ToString(ciKo)); // 2023-05-26 오후 2:54:38
CultureInfo ciEn = new CultureInfo("en-US");
WriteLine();
WriteLine(dt.ToString("yyyy-MM-dd tt hh:mm:ss (ddd)}", ciEn)); // 2023-05-26 PM 02:54:38 (Fri)}
WriteLine(dt.ToString("yyyy-MM-dd HH:mm:ss (dddd)}", ciEn)); // 2023-05-26 14:54:38 (Friday)}
WriteLine(dt.ToString(ciEn)); // 5/26/2023 2:54:38 PM
}
}
}
5. 문자열 보간
using static System.Console;
namespace StringInterpolation
{
internal class Program
{
static void Main(string[] args)
{
string name = "김튼튼";
int age = 23;
WriteLine($"{name,-10}, {age:D3}");
name = "박날씬";
age = 30;
WriteLine($"{name}, {age,-10:D3}");
name = "이비실";
age = 17;
WriteLine($"{name}, {(age > 20 ? "성인" : "미성년자")}");
}
}
}