목차
- string 자료형
- 문자열 길이
- 문자열 대소문자 변환
- 문자열 연결 : + 연산자 / string.Concat() 메서드
- 문자열 보간 : $"{var1}{var2}..."
- 문자열 문자 접근 / 문자열 추출
- 회피문자 - 특수문자 입력
- 숫자와 문자열 연결
- 문자열 문자 변경
string 자료형
'문자열' 저장에 사용하는 자료형.
1.
string (문자열) 자료형 데이터는 큰따옴표("")로 묶음.
cf.
char (단일문자) 자료형 데이터는 작은따옴표('')로 묶음.
2.
각 문자 당 2bytes 할당.
3.
문자열은 객체임. 따라서, 다양한 작업 위한 속성과 메서드 가짐.
(예) string.Length , string.ToUpper()
[예제]
using System;
namespace Homzzang
{
class Program
{
static void Main(string[] args)
{
string hz = "Homzzang.com";
Console.WriteLine(hz);
}
}
}
결과값: Homzzang.com
문자열 길이
문자열 객체에 내장된 Length 속성 이용.
(예) string.Length
PS1. 문자열은 객체 일종이며, 객체는 속성과 메서드 보유 가능.
PS2. 첫 글자만 대문자로 입력해야 함.
cf. C++ 경우, size() 함수나 length() 함수 이용.
[예제]
using System;
namespace Homzzang
{
class Program
{
static void Main(string[] args)
{
string hz = "Homzzang.com";
Console.WriteLine(hz.Length);
}
}
}
결과값: 12
문자열 대소문자 변환
문자열은 객체 일종이라, 여러 메서드 가짐.
(예)
string.ToUpper() 메서드 : 대문자로 변환.
string.ToLower() 메서드 : 소문자로 변환.
[예제]
using System;
namespace Homzzang
{
class Program
{
static void Main()
{
string hz = "Homzzang.com";
Console.WriteLine(hz.ToUpper()); // HOMZZANG.COM
Console.WriteLine(hz.ToLower()); // homzzang.com
}
}
}
문자열 연결 : + 연산자 / string.Concat() 메서드
방법1. + 연산자 사용.
(예) string1 + string2 + ...
방법2. Concat() 메서드 이용
string.Concat(string1, string2, ....)
[예제1] + 연산자로 문자열 연결.
using System;
namespace Homzzang
{
class Program
{
static void Main(string[] args)
{
string ko = "홈짱닷컴 ";
string en = "Homzzang.com";
string hz = ko + en;
Console.WriteLine(hz);
}
}
}
결과값: 홈짱닷컴 Homzzang.com
PS. 공백 추가 후 연결.
using System;
namespace Homzzang
{
class Program
{
static void Main(string[] args)
{
string ko = "홈짱닷컴";
string en = "Homzzang.com";
string hz = ko + " " + en;
Console.WriteLine(hz);
}
}
}
결과값: 홈짱닷컴 Homzzang.com
[예제2] Concat() 메서드로 문자열 연결.
namespace Homzzang
{
class Program
{
static void Main(string[] args)
{
string ko = "홈짱닷컴";
string en = "Homzzang.com";
string hz = string.Concat(ko, " ", en);
Console.WriteLine(hz);
}
}
}
결과값: 홈짱닷컴 Homzzang.com
문자열 보간 : $"{var1}{var2}..."
※ 문자열 보간 (Interpolation)
변수를 $기호로 시작하는 문자열 안 중괄호 된 {변수명}자리에 입력.
(예) $"{var1} {var2}";
PS1. $기호 붙이는 것 잊지말 것.
PS2. 변수 간 간격 띄우려면, 그냥 중괄호 간 간격 띄우면 됨.
PS3. C# 6 버전 때 도입.
[예제]
using System;
namespace Homzzang
{
class Program
{
static void Main(string[] args)
{
string ko = "홈짱닷컴";
string en = "Homzzang.com";
string hz = $"코딩 강의: {ko} {en}";
Console.WriteLine(hz);
}
}
}
결과값: Welcome to 홈짱닷컴 Homzzang.com
문자열 문자 접근 / 문자열 추출
string[index] 방식으로 접근 가능.
※ index는 0부터 시작.
(예) 첫 글자: 0, 두 번째 글자: 1 ...
[예제1] string[0] - 첫 번째 글자 출력.
using System;
namespace Homzzang
{
class Program
{
static void Main(string[] args)
{
string hz = "Homzzang.com";
Console.WriteLine(hz[0]); // H
}
}
}
결과값: H
[예제2] string[string.Length-1] - 마지막 글자 출력.
using System;
namespace Homzzang
{
class Program
{
static void Main(string[] args)
{
string hz = "Homzzang.com";
Console.WriteLine(hz[hz.Length -1]);
}
}
}
결과값: m
[예제3] string.IndexOf("part") 메서드 - 문자열 색인번호 반환.
※ 여러 개 경우, 가장 첫 번째 위치 반환.
using System;
namespace Homzzang
{
class Program
{
static void Main(string[] args)
{
string hz = "homzzang.com";
Console.WriteLine(hz.IndexOf("z")); // 3
}
}
}
[예제4] string.Substring(idx, Length) - 지정 위치부터 지정 길이만큼 문자열 추출.
※ Length 없으면, 마지막까지 추출.
using System;
namespace Homzzang
{
class Program
{
static void Main()
{
string hz = "Homzzang.com 홈짱닷컴";
int idx = hz.IndexOf("c");
string after = hz.Substring(idx, 3);
Console.WriteLine(after); // com
}
}
}
회피문자 - 특수문자 입력
1. \ (백슬래시) - 구문 상 "입력 불가 문자"를 입력할 때 사용.
(예제)
' : 작은따옴표 입력.
\" : 큰따옴표 입력.
\\ : 역슬래시 입력.
[예제1] 큰따옴표 입력: \"
using System;
namespace Homzzang
{
class Program
{
static void Main()
{
string hz = "\"홈짱닷컴\" Homzzang.com";
Console.WriteLine(hz); // "홈짱닷컴" Homzzang.com
}
}
}
[예제2] 작은따옴표 입력: '
※ 아래 예제는 역슬래시 없어도 입력됨.
using System;
namespace Homzzang
{
class Program
{
static void Main()
{
string hz = "'홈짱닷컴' Homzzang.com";
Console.WriteLine(hz); // '홈짱닷컴' Homzzang.com
}
}
}
결과보기: '홈짱닷컴' Homzzang.com
[예제3] 역슬래시 입력: \\
using System;
namespace Homzzang
{
class Program
{
static void Main()
{
string hz = "\\홈짱닷컴\\ Homzzang.com";
Console.WriteLine(hz); // \홈짱닷컴\ Homzzang.com
}
}
}
결과값: \홈짱닷컴\ Homzzang.com
2. \n : 개행 (= 문자열 입력 라인 변경)
using System;
namespace Homzzang
{
class Program
{
static void Main()
{
string hz = "홈짱닷컴\nHomzzang.com";
Console.WriteLine(hz);
}
}
}
결과값:
홈짱닷컴
Homzzang.com
3. \r : 캐리지 리턴 (Carrage Return : 새 줄 시작)
using System;
namespace Homzzang
{
class Program
{
static void Main()
{
string hz = "홈짱닷컴\rHomzzang.com";
Console.WriteLine(hz);
}
}
}
반환값: Homzzang.com
4. \t : 탭 (Tab) 키 누른 만큼 간격 띄우기.
using System;
namespace Homzzang
{
class Program
{
static void Main()
{
string hz = "홈짱닷컴\tHomzzang.com";
Console.WriteLine(hz);
}
}
}
반환값: 홈짱닷컴 Homzzang.com
5. \b : 백스페이스 (Backspace) 키 누른 효과.
using System;
namespace Homzzang
{
class Program
{
static void Main()
{
string hz = "홈짱닷컴 \bHomzzang.com";
Console.WriteLine(hz);
}
}
}
반환값: 홈짱닷컴Homzzang.com
6. \f : 폼 피드 (Form Feed)
예제 준비 중.
숫자와 문자열 연결
+ 연산자는 '덧셈'과 '문자열 연결' 모두에 사용 가능.
① (숫자 + 숫자) 경우, 덧셈 연산.
② (문자열 + 문자열) 경우, 문자열 연결.
단, (숫자 + 문자열) 경우, 에러 발생할 수도 있음.
[예제1] 숫자 + 숫자 경우, '덧셈' 연산
using System;
namespace Homzzang
{
class Program
{
static void Main(string[] args)
{
int x = 3;
int y = 4;
int z = x + y; // 7
Console.WriteLine(z);
}
}
}
결과값: 7
[예제2] 문자열 + 문자열 경우, 문자열 연결.
using System;
namespace Homzzang
{
class Program
{
static void Main(string[] args)
{
string x = "3";
string y = "4";
string z = x + y; // 34
Console.WriteLine(z);
}
}
}
결과값: 34
[예제3] 문자열 + 숫자 경우, 결합한 것을 어떤 자료형 변수에 담냐에 따라 에러가 발생할 수도 있고 안 할 수도 있음.
※ 에러 유발 X 경우.
using System;
namespace Homzzang
{
class Program
{
static void Main(string[] args)
{
string x = "3";
int y = 4;
string z = x + y; // 에러 유발 X (∵ 암묵적변환 O)
Console.WriteLine(z);
}
}
}
※ 에러 유발 O 경우.
using System;
namespace Homzzang
{
class Program
{
static void Main(string[] args)
{
string x = "3";
int y = 4;
int z = x + y; // 에러 유발 O (∵ 암묵적변환 X)
Console.WriteLine(z);
}
}
}
문자열 문자 변경
string.Replace(old, new) 메서드 이용.
cf. C++ 경우, 아래 방법 가능.
string[index] = 'new_value';
[예제] 첫 번째 글자를 h → H 변경.
using System;
namespace Homzzang
{
class Program
{
static void Main()
{
string hz = "homzzang.com";
Console.WriteLine(hz.Replace('h','H'));
}
}
}
결과값: Homzzang.com
최신댓글