2009-11-17 7 views
0

SQL 데이터베이스에서 반환 된 문자열의 끝에서 알 수없는 문자를 제거해야합니다. 또한 문자열에 특수 문자가 발생하면 기록해야합니다.문자열의 끝에서 특수 문자를 제거하려면 어떻게해야합니까?

이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

+2

박탈해야하는 특수 문자는 무엇입니까? 왜 스트립되면 로그해야합니까? 무엇을 시도하고 처음 생각이 무엇입니까? –

+0

그게 문제 야, 나는 무엇을 벗겨야하는지 잘 모르겠다. 데이터베이스를 채우는 프로그램이 알 수없는 문자를 주입하고 있습니다. 불행히도 나는이 과정을 통제 할 수 없다. 그것을 제어하는 ​​사람들은 이것이 언제 발생하는지 알고 싶어합니다. 내 생각은 Char 클래스의 정적 메서드를 사용하는 것입니다. 나는 DB에 저장된 문자열이 영숫자 일 뿐이라는 것을 알고 있습니다. 문자열 끝에이 알려지지 않은 문자를 추가하고 있습니다. 문자 'UrlEncodeUnicode'를 수행하면이 '% 00 ++++++'가 표시됩니다.이를 해석하는 방법을 모르겠습니다. – anon

+0

그냥 직감 ... DB 열 VARCHAR 또는 CHAR입니까? –

답변

-1

체크 아웃 Regex. 교체 방법 ... 많은 과부하가 있습니다. 로깅에 Match 메소드를 사용하여 모든 일치 항목을 식별 할 수 있습니다.

 String badString = "HELLO WORLD!!!!"; 

     Regex regex = new Regex("!{1,}$"); 

     String newString = regex.Replace(badString, String.Empty); 
2

Trim() 메서드를 사용하여 문자열 끝에있는 공백이나 특정 문자를 잘라낼 수 있습니다. 특정 수의 문자를 자르려면 Substring() 메서드를 사용할 수 있습니다. Regexs (System.Text.RegularExpressions 네임 스페이스)를 사용하여 문자열의 패턴을 일치시키고 발생할 때이를 감지 할 수 있습니다. 자세한 내용은 MSDN을 참조하십시오.

더 많은 도움이 필요하면 정확히 무엇을하려고하는지 더 자세히 알려야합니다.

0

먼저 알 수없는 문자 (0-9, a 및 z와 A ~ Z 이외의 문자)를 정의한 다음 배열에 넣습니다. 문자열의 문자를 반복하고 문자가 있는지 확인합니다 풀다. 당신은 또한 String.Replace param로 알 수없는 문자 및 replaceparam ''수 있습니다.

0

문제의 당신의 정의는 정확하지 아직이 그렇게 빠른 트릭 : 당신이 법적 문자가 숫자에만 있음을 지정한 이후

 
string input; 
... 
var trimed = input.TrimEnd(new[] {'#','$',...} /* array of unwanted characters */); 
if(trimed != input) 
    myLogger.Log(input.Replace(trimed, "")); 
0

, 당신은 이런 식으로 뭔가를 할 수 :

Match m = Regex.Match(original, "^([0-9A-Za-z]*)(.*)$"); 
string good = m.Groups[1].Value; 
string bad = m.Groups[2].Value; 

if (bad.Length > 0) 
{ 
    // log bad characters 
} 

Console.WriteLine(good); 
관련 문제