Section 11.10: 하나의 문자열을 다른 문자열을 이용하여 분리 (split) 하기

string str = "this--is--a--complete--sentence"; string[] tokens = str.Split(new[] { "--" }, StringSplitOptions.None);

결과:

[ "this", "is", "a", "complete", "sentence" ]
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/CSharpBook/

반응형

Section 11.9: ToString 을 이용하여 서식 지정하기 (Formatting)

많은 경우 문자열의 서식을 지정하기 위해 String.Format 메소드가 사용되나, .ToString 을 통해서 다른 타입을 문자열로 변환시키는 작업 역시 널리 사용되며, 이러한 ToString 메소드를 통해 변환을 수행하는 과정에서 서식을 함께 지정할 수 있기 때문에 변환이 모두 완료된 이후에 추가적인 서식 지정 과정을 거치지 않아도 된다. 다양한 타입들에 대한 예제가 아래에 소개되어 있다:

Integer 를 서식화된 문자열로 변환하기:

int intValue = 10; string zeroPaddedInteger = intValue.ToString("000"); // 출력 결과는 "010" 이 될 것이다 string customFormat = intValue.ToString("Input value is 0"); // 출력 결과는 "Input value is 10" 이 될 것이다

double 을 서식화된 문자열로 변환하기:

double doubleValue = 10.456; string roundedDouble = doubleValue.ToString("0.00"); // 출력 결과는 "10.46" 이 될 것이다 string integerPart = doubleValue.ToString("00"); // 출력 결과는 "10" 이 될 것이다 string customFormat = doubleValue.ToString("Input value is 0.0"); // 출력 결과는 "Input value is 10.5" 가 될 것이다

DateTime 을 서식화된 문자열로 변환하기

DateTime currentDate = DateTime.Now; // {7/21/2016 7:23:15 PM} string dateTimeString = currentDate.ToString("dd-MM-yyyy HH:mm:ss"); // 출력 결과는 "21-07-2016 19:23:15" 가 될 것이다 string dateOnlyString = currentDate.ToString("dd-MM-yyyy"); // 출력 결과는 "21-07-2016" 이 될 것이다 string dateWithMonthInWords = currentDate.ToString("dd-MMMM-yyyy HH:mm:ss"); // 출력 결과는 "21-July-2016 19:23:15" 가 될 것이다
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/CSharpBook/

반응형

Section 11.8: 배열이나 List 로부터 새로운 문자열을 생성하기

String.Join 메소드는 배열이나 list 로부터 새로운 문자열을 생성할 수 있도록 도와준다. 이 메소드는 두개의 파라미터를 받는데, 첫번째는 delimeter 혹은 separator 라 불리는 구분자로써 배열 내의 각 원소들을 분리하여 표현하도록 도와주는 역할을 한다. 두번째 파라미터는 대상 배열 자체를 가리킨다.

char 배열로부터 생성하기:

string delimiter=","; char[] charArray = new[] { 'a', 'b', 'c' }; string inputString = String.Join(delimiter, charArray);

출력 결과 : a,b,c
만약 delimeter 를 "" 으로 설정했다면 출력 결과는 abc 가 될 것이다.

char list 로부터 생성하기:

string delimiter = "|"; List<char> charList = new List<char>() { 'a', 'b', 'c' }; string inputString = String.Join(delimiter, charList);

출력 결과 : a|b|c

string list 로부터 생성하기:

string delimiter = " "; List<string> stringList = new List<string>() { "Ram", "is", "a","boy" }; string inputString = String.Join(delimiter, stringList);

출력 결과 : Ram is a boy

string 배열로부터 생성하기:

string delimiter = "_"; string[] stringArray = new [] { "Ram", "is", "a","boy" }; string inputString = String.Join(delimiter, stringArray);

출력 결과 : Ram_is_a_boy

본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/CSharpBook/

반응형

Section 11.7: 10진수 숫자를 2진수 / 8진수 / 16진수 형태로 변환하기

  1. 기수 (base) 2 를 사용하여 10진수 숫자를 2진수 형태로 변환하기
    Int32 Number = 15; Console.WriteLine(Convert.ToString(Number, 2)); //OUTPUT : 1111
  2. 기수 (base) 8 을 사용하여 10진수 숫자를 8진수 형태로 변환하기
    int Number = 15; Console.WriteLine(Convert.ToString(Number, 8)); //OUTPUT : 17
  3. 기수 (base) 16 을 사용하여 10진수 숫자를 16진수 형태로 변환하기
    var Number = 15; Console.WriteLine(Convert.ToString(Number, 16)); //OUTPUT : f
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/CSharpBook/

반응형

Section 11.6: 문자열의 시작 혹은 끝으로부터 원치 않는 문자들을 잘라내기 (trim)

String.Trim()

string x = " Hello World! "; string y = x.Trim(); // "Hello World!" string q = "{(Hi!*"; string r = q.Trim( '(', '*', '{' ); // "Hi!"

String.TrimStart() 와 String.TrimEnd()

string q = "{(Hi*"; string r = q.TrimStart( '{' ); // "(Hi*" string s = q.TrimEnd( '*' ); // "{(Hi"
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/CSharpBook/

반응형

Section 11.5: String.IsNullOrEmpty() 와 String.IsNullOrWhiteSpace() 를 이용하여 빈 문자열 여부를 확인하기

string nullString = null; string emptyString = ""; string whitespaceString = " "; string tabString = "\t"; string newlineString = "\n"; string nonEmptyString = "abc123"; bool result; result = String.IsNullOrEmpty(nullString); // true result = String.IsNullOrEmpty(emptyString); // true result = String.IsNullOrEmpty(whitespaceString); // false result = String.IsNullOrEmpty(tabString); // false result = String.IsNullOrEmpty(newlineString); // false result = String.IsNullOrEmpty(nonEmptyString); // false result = String.IsNullOrWhiteSpace(nullString); // true result = String.IsNullOrWhiteSpace(emptyString); // true result = String.IsNullOrWhiteSpace(tabString); // true result = String.IsNullOrWhiteSpace(newlineString); // true result = String.IsNullOrWhiteSpace(whitespaceString); // true result = String.IsNullOrWhiteSpace(nonEmptyString); // false
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/CSharpBook/

반응형

Section 11.4: 문자열의 좌/우/중간으로부터 x 개의 문자를 가져오기

Visual Basic 에서는 문자열의 좌, 우, 그리고 중간으로부터의 임의의 문자들을 반환해주는 Left, Right, 그리고 Mid 와 같은 함수들이 존재한다. 이 메소드들이 C# 에서 존재하지는 않지만, Substring() 을 이용하여 구현 할 수 있다. 혹은 아래와 같이 extension method 로 구현을 할 수도 있다:

public static class StringExtensions { /// <summary> /// VB Left function /// </summary> /// <param name="stringparam"></param> /// <param name="numchars"></param> /// <returns>Left-most numchars characters</returns> public static string Left(this string stringparam, int numchars) { // stringparam 이 null 인 경우에 대한 처리 stringparam += string.Empty; // numchars 가 음수인 경우에 대한 처리 numchars = Math.Abs(numchars); // numchars 값 유효범위 확인 if (numchars > stringparam.Length) numchars = stringparam.Length; return stringparam.Substring(0, numchars); } /// <summary> /// VB Right function /// </summary> /// <param name="stringparam"></param> /// <param name="numchars"></param> /// <returns>Right-most numchars characters</returns> public static string Right(this string stringparam, int numchars) { // stringparam 이 null 인 경우에 대한 처리 stringparam += string.Empty; // numchars 가 음수인 경우에 대한 처리 numchars = Math.Abs(numchars); // numchars 값 유효범위 확인 if (numchars > stringparam.Length) numchars = stringparam.Length; return stringparam.Substring(stringparam.Length - numchars); } /// <summary> /// VB Mid function - to end of string /// </summary> /// <param name="stringparam"></param> /// <param name="startIndex">VB-Style startindex, 1st char startindex = 1</param> /// <returns>Balance of string beginning at startindex character</returns> public static string Mid(this string stringparam, int startindex) { // stringparam 이 null 인 경우에 대한 처리 stringparam += string.Empty; // startindex 가 음수인 경우에 대한 처리 startindex = Math.Abs(startindex); // startindex 값 유효범위 확인 if (startindex == 0) startindex = 1; // startindex 값 유효범위 확인 if (startindex > stringparam.Length) startindex = stringparam.Length; // C# 의 string 은 index 가 0 부터 시작하므로, 변환된 startindex 값을 사용한다 return stringparam.Substring(startindex - 1); } /// <summary> /// VB Mid function - for number of characters /// </summary> /// <param name="stringparam"></param> /// <param name="startIndex">VB-Style startindex, 1st char startindex = 1</param> /// <param name="numchars">number of characters to return</param> /// <returns>Balance of string beginning at startindex character</returns> public static string Mid(this string stringparam, int startindex, int numchars) { // stringparam 이 null 인 경우에 대한 처리 stringparam += string.Empty; // startindex 가 음수인 경우에 대한 처리 startindex = Math.Abs(startindex); // numchars 가 음수인 경우에 대한 처리 numchars = Math.Abs(numchars); // startindex 값 유효범위 확인 if (startindex == 0) startindex = 1; // startindex 값 유효범위 확인 if (startindex > stringparam.Length) startindex = stringparam.Length; // numchars 값 유효범위 확인 if (startindex + numchars > stringparam.Length) numchars = stringparam.Length - (startindex - 1); // C# 의 string 은 index 가 0 부터 시작하므로, 변환된 startindex 값을 사용한다 return stringparam.Substring( startindex - 1, numchars ); } }

역주: 원문에는 유효범위 확인 코드가 빠진 부분이 많아 추가적으로 채워넣긴 했으나, VB 처럼 배열의 index 가 1로 시작하는 것을 가정한 method 들이라 실제적으로 유용하지 않은 예제일 수 있습니다.

위와 같이 작성된 extension method 는 아래와 같이 사용될 수 있다:

string myLongString = "Hello World!"; string myShortString = myLongString.Right(6); // "World!" string myLeftString = myLongString.Left(5); // "Hello" string myMidString1 = myLongString.Left(4); // "lo World" string myMidString2 = myLongString.Left(2,3); // "ell"
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/CSharpBook/

반응형

Section 11.3: 문자열을 고정 길이로 표시하기 위해 여백 문자 채워넣기 (padding)

string s = "Foo"; string paddedLeft = s.PadLeft(5); // paddedLeft = " Foo" (기본적으로 공백 문자를 채워넣는다) string paddedRight = s.PadRight(6, '+'); // paddedRight = "Foo+++" string noPadded = s.PadLeft(2); // noPadded = "Foo" (원본 문자열이 잘리는 경우는 없다)
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/CSharpBook/

반응형

+ Recent posts