2016-06-02 1 views
-2

길이가 45자인 API에서 문자열을 반환합니다. 하나의 조건은 다른 조건에 나타나지 않는 고유 한 단어입니다.string.contains() vs string.equals() 또는 string == 성능

string.contains()를 사용하면 전체 문자열을 string.equals() 또는 string == "blah blah"와 비교하는 것보다 빠르다는 것이 궁금합니다.

나는이 방법들 중 하나의 내부 동작을 알지 못하지만 논리적으로 볼 때 contains()는 일치를 찾은 후 문자열을 가로 지르는 것을 멈출 수 있기 때문에 빠릅니다. 정확합니까? 덧붙여 말하면, 확인하고 싶은 단어가 문자열의 첫 번째 단어입니다.

+7

'포함'과 '같음'은 동일하지 않으며 상호 교환 할 수 없습니다. –

+4

"확인하고 싶은 단어가 문자열의 첫 번째 단어"- 원하는대로 '시작'을 누른 다음 소리 쳤습니까? –

+2

실제로 성능 문제가 있습니까? 이것이 거의 항상 최적화를 초과하기 때문에 나는 묻는다. API 호출을 고려할 때, 어떤 것이 가장 효과적인지 신경 쓰지 않을 것입니다. (하지만 기능적으로 올바른 것은 신경 쓰겠습니다.) –

답변

2

D Stanley (의견)에 동의합니다. 당신은 사용해야합니다 String.StartsWith()

그건, 나 또한 각 방법의 내부 작업을 모르지만, 당신의 논리를 볼 수 있습니다. 그러나 "String.Contains()"는 처리하기 전에 여전히 전체 문자열을로드 할 수 있습니다.이 경우 성능 차이는 매우 작습니다.

문자열 길이가 단 45 자이면 성능 차이가 매우 작습니다. 나는 문자를 대체하기위한 쓸데없는 방법을 썼을 때 눈 깜짝 할 순간에 ~ 10kb의 텍스트를 발견했다는 사실에 놀랐다. 앱에서 현명한 취급을하지 않는 한별로 중요하지 않습니다.

+0

나는 startswith()와 함께 갈 것이다. 카일에게 고마워. –

+0

문제가 없습니다. 그러나 그 점에 대한 @D Stanley의 신용. :) –

+0

그래, 나는 그의 코멘트를 upvoted :) –