그래서 사용자가 무엇이든 입력 할 수있는 텍스트 필드가 있습니다. 사용자가 단어가 "영리"로 대체됩니다보다는 아무 곳이나 입력의 "스마트"가있는 경우객관적인 -c에서 문자열의 단어를 쉽게 바꾸는 방법
NSString *input = _inputTextField.text;
: I는 입력을있는 NSString 값을 할당하려면 다음 코드를 사용합니다. 똑같이 "똑똑하다"면 "똑똑하다"로 바꿀 것이다. 나는 이것을 달성하기 위해 다음과 같은 코드가 있습니다
input = [input stringByReplacingOccurrencesOfString:@"smart" withString:@"clever"];
input = [input stringByReplacingOccurrencesOfString:@"smarter" withString:@"cleverer"];
이제이 완벽하게 작동을하지만 응용 프로그램을 실행하는 동안 나는 문제에 부딪쳤다. 사용자가 'smartweed'와 같이 'smart'가 포함 된 단어가있는 경우 단어가 아닌 'cleverweed'로 변경됩니다. 이 문제를 우회하기 위해, 나는 다음과 같은 코드를 추가 : 이제
input = [input stringByReplacingOccurrencesOfString:@"cleverweed" withString:@"smartweed"];
을, 나는 그 그것으로 "스마트"가 존재하는 모든 단어에 그렇게하지 않아도 알고, 그래서에 코드를 변경 다음과 같이 말하십시오.
input = [input stringByReplacingOccurrencesOfString:@" smart " withString:@" clever "];
안녕하세요. 하지만 문제가 발생했습니다 ... "스마트"라는 단어가 문장의 시작 부분이나 문장의 마지막 부분이라면 문제를 해결하지 못할 것입니다! 다음을 추가하여 문제를 해결할 수 있습니다.
input = [input stringByReplacingOccurrencesOfString:@"Smart " withString:@"Clever "];
input = [input stringByReplacingOccurrencesOfString:@" smart." withString:@" clever."];
등등.
내 공식 질문은 코드가 "스마트"를 "영리한"것으로 바꾸고 다른 단어 안에 "스마트"라는 단어를 변경하지 않는 방법이 있습니까? 나는 NSRange를 살펴 봤지만, 사용자가 무엇을 입력했는지에 의존 할 수 있기 때문에 여기에서 제대로 사용하는 방법을 혼란 스럽다.
또한 검색을 시도했지만 찾을 수 없습니다.
내 첫 번째. 코드 줄이 당신의 질문에 답합니다. 사용자 입력 내용이 무엇이든간에 TextField의 입력은 대체 될 단어입니다. 사용자는 단락을 입력 할 수 있으며, 코드는 그가 말한 단어. 이것은 완벽하게 작동합니다! 네 말이 맞아요, 저는 대문자로 진행될 것입니다. 저는 대소 문자를 구분하지 않고 모든 솔루션을 사용하려고했습니다. 제 xcode는 항상 코드를 복사 할 때도 대소 문자를 구분하지 않는 오류를 제공합니다. –
@ BringMe115 텍스트 필드의 관련성에 대한 내 의견은 코드가 문자열만을 처리한다는 사실을 언급했습니다. 텍스트 필드에서 왔음은 사실 적절하지 않습니다. 대소 문자를 구별하지 않는 옵션을 추가했습니다. – Monolo
어느 쪽이든, 불필요한 코드 줄을 없애는 훨씬 쉬운 방법을 제공했습니다. 감사!! –