첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170

TestProject.zip
다운로드

▶ StringExtensions.cs

using System;
using System.Globalization;
using System.Text.RegularExpressions;
using System.Threading;

namespace TestProject
{
    /// <summary>
    /// 문자열 확장
    /// </summary>
    public static class StringExtension
    {
        //////////////////////////////////////////////////////////////////////////////////////////////////// Method
        ////////////////////////////////////////////////////////////////////////////////////////// Static
        //////////////////////////////////////////////////////////////////////////////// Public

        #region 파스칼 표기법 문자열 구하기 - ToPascalCase(source)

        /// <summary>
        /// 파스칼 표기법 문자열 구하기
        /// </summary>
        /// <param name="source">소스 문자열</param>
        /// <returns>파스칼 표기법 문자열</returns>
        public static string ToPascalCase(this string source)
        {
            TextInfo textInfo = Thread.CurrentThread.CurrentCulture.TextInfo;

            source = textInfo.ToTitleCase(source);

            string[] partArray = source.Split(new char[] {}, StringSplitOptions.RemoveEmptyEntries);

            string result = string.Join(string.Empty, partArray);

            return result;
        }

        #endregion
        #region 카멜 표기법 문자열 구하기 - ToCamelCase(source)

        /// <summary>
        /// 카멜 표기법 문자열 구하기
        /// </summary>
        /// <param name="source">소스 문자열</param>
        /// <returns>카멜 표기법 문자열</returns>
        public static string ToCamelCase(this string source)
        {
            source = source.ToPascalCase();

            return source.Substring(0, 1).ToLower() + source.Substring(1);
        }

        #endregion
        #region 고유 표기법 문자열 구하기 - ToProperCase(source)

        /// <summary>
        /// 고유 표기법 문자열 구하기
        /// </summary>
        /// <param name="source">소스 문자열</param>
        /// <returns>고유 표기법 문자열</returns>
        public static string ToProperCase(this string source)
        {
            const string pattern = @"(?<=\w)(?=[A-Z])";

            string result = Regex.Replace(source, pattern, " ", RegexOptions.None);

            return result.Substring(0, 1).ToUpper() + result.Substring(1);
        }

        #endregion
    }
}

 

728x90

 

▶ MainForm.cs

using System;
using System.Windows.Forms;

namespace TestProject
{
    /// <summary>
    /// 메인 폼
    /// </summary>
    public partial class MainForm : Form
    {
        //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
        ////////////////////////////////////////////////////////////////////////////////////////// Public

        #region 생성자 - MainForm()

        /// <summary>
        /// 생성자
        /// </summary>
        public MainForm()
        {
            InitializeComponent();

            #region 이벤트를 설정한다.

            Load                           += Form_Load;
            this.stringTextBox.TextChanged += stringTextBox_TextChanged;

            #endregion
        }

        #endregion

        //////////////////////////////////////////////////////////////////////////////////////////////////// Method
        ////////////////////////////////////////////////////////////////////////////////////////// Private
        //////////////////////////////////////////////////////////////////////////////// Event

        #region 폼 로드시 처리하기 - Form_Load(sender, e)

        /// <summary>
        /// 폼 로드시 처리하기
        /// </summary>
        /// <param name="sender">이벤트 발생자</param>
        /// <param name="e">이벤트 인자</param>
        private void Form_Load(object sender, EventArgs e)
        {
            this.stringTextBox.Text = "this is another test string";
        }

        #endregion
        #region 문자열 텍스트 박스 텍스트 변경시 처리하기 - stringTextBox_TextChanged(sender, e)

        /// <summary>
        /// 문자열 텍스트 박스 텍스트 변경시 처리하기
        /// </summary>
        /// <param name="sender">이벤트 발생자</param>
        /// <param name="e">이벤트 인자</param>
        private void stringTextBox_TextChanged(object sender, EventArgs e)
        {
            this.pascalCaseTextBox.Text   = this.stringTextBox.Text.ToPascalCase();
            this.camelCaseTextBox.Text    = this.stringTextBox.Text.ToCamelCase();
            this.separateWordTextBox.Text = this.camelCaseTextBox.Text.ToProperCase();
        }

        #endregion
    }
}
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요