■ 파스칼/카멜 표기법 사용하기

------------------------------------------------------------------------------------------------------------------------


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

    }

}

 

 

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

    }

}

 

------------------------------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker
TAG