이름을 잘짓자! 한글로 코딩을...
한글로 만들었더니 대박!!! 지저분함. ㅡ.,ㅡ;
----------------------------------------------------------- 훈스 팁게시판에 올린 글! 그대로..
소스를 보시고 대체 이건 뭥미? 하실텐데요...
오늘 질문게시판에 TextBox에 들어온 숫자의 갯수가 4개가 연속이면 제거해야된다는 글을
들어온 문자열중 4개가 중복되면 제거로 잘못보고 ㅡ.,ㅡ;;; 아래 클래스를 만들었었습니다. 난독증...
처음 클래스명과 변수명들은 모두 영문자로 늘 하던데로 대충.. 때려맞춰서 만들어놓고 보니
이걸 미친척 한글로 바꿔보고 싶은 생각이 문득 들어... 만들어보았습니다.
어떤가요?잘 지었는지? 검사와 검색이란 단어를 적용하려니.. 한글 사전없이는 힘든것 같네요.(아래도 불분명합니다. )
한글로 지어놓으니 대략 난감하네요. 하하하.
한글로 써놓으니 글씨 폰트도 영문자랑 안맞아서 그런지 많이 지저분하네요.
만들어본 목적
객체지향 <-- 을 되새기며 객체이름을 명시하고 기능을 명시하면서 코드를 문장으로 볼수 있다면... 이란 오랜
생각끝에 영어로 안되서 ㅡ.,ㅡ;; 한글로 도전해봤습니다.
중복문자처리객체.제거실행( this.textBox1.Text );
조금은 억지스럽지만 ^^ 미천한 실력으로 만들다보니 역시 미흡해보이는게 눈에 너무 띠네요.
이팁을 보시는 여러분들은 어떠신가요?
코드자체를 직독직해? 가능하신지요?? 객체를 얼마나 자연스러운 코드로 만드시는지요?
영어잘하시는분 넘 부러워요!!
사용법
만약 ) this.textBox1.Text = "aa abbccc c d e11 ffffc a aabbbbbb 22b 4444 66";
데이타가 존재시... 아래와 같이 중복을 제거할수 있습니다.
숫자 2는 2개씩 체크합니다.
using (중복문자제거클래스 중복문자처리객체 = new 중복문자제거클래스(2))
{
this.textBox1.Text = 중복문자처리객체.제거실행(this.textBox1.Text);
}
public class 중복문자제거클래스 : IDisposable
{
int 체크문자개수 = 0;
int 현재위치 = 0;
List<char> 검사문자저장소 = new List<char>();
List<string> 중복문자목록 = new List<string>();
public 중복문자제거클래스(int _체크문자갯수)
{
체크문자개수 = _체크문자갯수;
}
public string 제거실행(string 검사소스문자열)
{
string 제거된문자열 = "";
현재위치 = 0;
for (int loop = 0; loop < 검사소스문자열.Length; loop++)
{
char? 검색대상문자 = 검색대상문자얻어내기(검사소스문자열);
if (검색대상문자 != null)
{
bool 검사여부 = 문자체크여부(검색대상문자.Value);
if (검사여부 == false)
{
중복문자체크(검사소스문자열, 검색대상문자.Value);
}
현재위치++;
}
if (현재위치 >= 검사소스문자열.Length - 1)
{
제거된문자열 = 문자변환(검사소스문자열).Replace(" ", " ");
}
}
return 제거된문자열;
}
private string 문자변환(string 검사소스문자열)
{
foreach (string 중복문자항목 in 중복문자목록)
{
검사소스문자열 = 검사소스문자열.Replace(중복문자항목, "");
}
return 검사소스문자열;
}
private void 중복문자체크(string 검사소스문자열, char 검사대상문자)
{
try
{
string 중복검사문자열 = new string(검사대상문자, 체크문자개수);
if (검사소스문자열.IndexOf(중복검사문자열, 현재위치) >= 0)
{
중복문자목록.Add(중복검사문자열);
}
}
catch{ }
}
private bool 문자체크여부(char 검색대상문자)
{
bool 체크여부 = false;
if (검사문자저장소.Contains(검색대상문자))
{
체크여부 = true;
}
else
{
체크여부 = false;
검사문자저장소.Add(검색대상문자);
}
return 체크여부;
}
private char? 검색대상문자얻어내기(string 검사소스문자열)
{
char? 검색대상문자 = null;
try
{
검색대상문자 = 검사소스문자열[현재위치];
}
catch { }
return 검색대상문자;
}
#region IDisposable 멤버
public void Dispose()
{
검사문자저장소.Clear();
중복문자목록.Clear();
중복문자목록 = null;
검사문자저장소 = null;
}
#endregion
}
'# 1) 프로그래밍' 카테고리의 다른 글
피벗 메서드 (0) | 2010.08.26 |
---|---|
새로운 프로젝트 & 6월에 나의 프로젝트! (0) | 2010.06.03 |
변수명, 메서드명... 이름짓기어렵다!! (0) | 2010.05.26 |
나는 펜으로 종이에 글을 쓴다. 를 프로그래밍한다묜??? (0) | 2010.05.20 |
TCP.IP 초기 구상 모델... (0) | 2010.05.09 |