2016-06-26 2 views
0

문자열에 공백이 두 개있는 경우 문자열의 첫 번째 공백을 제거하려고 할 때 문제가 있습니다. 예를 들어, "Fully Functional Method"를 "FullyFunctional Method"로 바꾸어야하지만 "Functional Method"는 1 개의 공백 만 있기 때문에 변경하면 안됩니다. 문자열에 2 개의 공백이 있으면 첫 번째 공백을 제거하는 방법을 생각할 수 없습니다.문자열에 정확히 2 개의 공백이있는 경우 첫 번째 공백을 제거하십시오.

+7

어떤 언어입니까? – v7d8dpo4

답변

1

정확히 무엇을하고 싶은지 모르지만 RegExp 및 문자열을 검색 할 수 있습니다. replace()을 사용하면 String의 일부 내용을 대체 할 수 있습니다. 여기는 Characters, metacharacters, and metasequences을 이해할 수있는 또 다른 링크입니다. 이

var myPattern2:RegExp =//; 
var str2:String = "Fully Functional Method"; 
trace(str2.replace(myPattern2, "")); 
//If you omit the g, only the first space will be replaced by "" 
//outputs : FullyFunctional Method 

같은

var myPattern1:RegExp =//g; 
var str1:String = "This is a string that contains double spaces."; 
trace(str1.replace(myPattern1, " ")); 
//this replaces all " " by " "... 
//outputs : This is a string that contains double spaces. 

또는 귀하의 경우

(내 생각) 뭔가 당신이 정규식을 사용하여 할 수있는 너무 많은 일들이 내가 ... 그냥 체크 여기에 이것을 설명하지 않습니다,이 Adobe 웹 사이트에서 ... 문자열을 사용하여 빠르고 효율적으로 작업 할 수 있습니다. 도움이되기를 바랍니다. 이러한 링크를 확인하면 내 예제가 순수한 거친 것으로 이해할 수 있으며 FullyFunctional 메서드를 사용하도록 수정해야합니다. : D

+0

AMO, RegExp 코드에서 "느려짐"을 유발할 수있는 길고 불필요한 루프를 피함으로써 문자열을 처리하는 가장 좋은 방법입니다. 특히 큰 문자열로 작업하는 경우. RegExp 클래스는 약간 놀랍지 만 구문에 익숙하면 String을 처리하는 가장 효율적이며 효율적인 방법입니다. 나는 다른 사람들의 답변에 투표하지 않겠지 만, 불필요한 반복을 피해야한다고 생각합니다. : \ D – tatactic

+0

@Daniel Holler 당신이 쓸모 없거나 유용하지 않다는 것을 말하지 않았습니다 ... Regexp 문서를 확인하려고 했습니까? – tatactic

+0

@Daniel Holler가 의견에 감사드립니다. – tatactic

0

문자열을 통해 선형 스캔을 수행하십시오. 공백 수를 세고 첫 번째 공백의 색인이 있으면 그 공백을 기록하십시오. 두 개의 공백이있는 경우 첫 번째 공백까지의 문자를 연결 한 문자열과 첫 번째 공백 다음의 문자를 반환합니다.

간단하게 유지하십시오. 정규식으로 문제를 해결하는 것은 가능하지만, 정렬되지 않은 집합에서 특정 문자를 찾는 최악의 경우의 시간 복잡도는 항상 O (N)이 될 것이므로 빠르지는 않습니다.