2013-07-25 3 views
0

저는 직장에서 프로그래밍을 처음 6 개월 동안했는데 여전히 표준과 모범 사례에 대한 느낌을 받고 있습니다.대문자와 소문자를 비교하는 것이 더 일반적입니까/표준입니까?

문자열 또는 문자 비교를 수행 할 때 ToUpper를 사용하여 대문자를 비교하거나 ToLower를 사용하여 소문자를 비교하는 것이 더 일반적입니까? 아마도 대문자를 더 자주 보았을 것입니다. 그러나 좀 더 명확한 답을 원했고 어쩌면 오랜 기간의 최적화 설명 (낮은 ASCII 코드, 무엇이든간에)을 찾고있었습니다.

참고 : 현재 작업에서 string # replace를 사용하고 있으며 새 문자열은 가독성을 위해 소문자가 될 예정이지만, 필자는 필자의 소스 문자열과 하위 문자열 모두에서 ToLower를 사용해야 함을 의미합니다. 찾고있어?

답변

4

합니다. 그렇지 않은 경우 대부분의 경우 대문자로 변환하는 것이 좋습니다. 예를 들어 독일의 예리한 ß는 대문자로 된 두 배의 S로 변환되며 SS와 정확히 동일합니다. 소문자로 변환 한 경우 SS는 소문자이므로 SS가 아니고 ß가 아니기 때문에 실패합니다. 당신은 사용해야하는 상황에서

1

이것은 아마도 특정 개발 팀에 특정한 것입니다. 모든 lower-> upper 변환은 상 위 -> 상한을 포함해야하므로 어느 쪽과도 효과적으로 동일해야합니다.

그러나 상호 의존 관계가없는 괴상한 확장 문자를 얻는 경우에 대비하여 프로젝트 내에서 일관성을 유지하는 것이 좋습니다.

+0

일치하지 않는 것이 확장 된 문자에 문제를 일으킬 수있는 상황이 있습니까? – FLGMwt

+0

@ Joni가 지적했듯이, ß는 upper-> lower를 lower-> upper로 가지지 않습니다. 동일한 프로젝트에서 상위 비교와 하위 비교를 수행하면 일치하지 않는 결과가 발생할 수 있습니다. – MightyE

2

는 프로그램이 사용하는 언어, C#을 비교 insesitive 경우가 있습니다 따라 다름 내장 : 경우 대신 사용한다을 변경하지 않고 대소 문자를 구분하지 않고 비교를 할 수있는 방법이

string.Equals(a, b, StringComparison.CurrentCultureIgnoreCase); 
+1

C#을 사용하는 일이 생겼지 만, 절대 케이싱을 사용하도록 강요 당하면 불가지론적인 선호에 관심이있었습니다. – FLGMwt