2012-04-18 2 views

답변

2

lastIndexOf 함수를 사용하여 바꾸려는 문자열의 위치를 ​​결정한 다음 원하는 문자열을 얻기 위해 발생 전후에 부분 문자열을 추가 할 수 있습니다. 제안 된 기능에 오류가

+0

음, 이것은 내가 무엇을 가지고 문자열 { VAR 사전 : 문자열 = $의 str.substr (0, $ str.lastIndexOf ($ find) -1), post : String = $ str.substr ($ str.lastIndexOf ($ find) +2, $ str.length); \t \t \t return pre + $ replace + post; }' 그냥 매우 우아하게 보이지 않습니다. – DeweyOx

+0

참. 그러나 "replaceLast"가 없기 때문에, 나는 당신이 그리 우아하지 않은 해결책으로 살아야한다고 생각합니다. 또한 도우미 함수를 public 및/또는 static으로 만들면 사용하면 코드가 다시 표시되지 않습니다.) – TheSHEEEP

+0

제안 된 함수에 오류가 있습니다 ... 수정 된 코드는 다음과 같습니다. public static function replaceLastOccurrence (str : String, find : String, replace : String) : 문자열 { var pre : String = str.substr (0, str.lastIndexOf (find) -1); var post : String = str.substr (str.lastIndexOf (find) + find.length, str.length); return pre + replace + post; } –

1

는 ... 여기에 하나를 수정됩니다 :

public static function replaceLastOccurrence(str:String, find:String, replace:String):String 
{ 
    if (str.lastIndexOf(find) != -1) 
    { 
     var pre:String = str.substr(0, str.lastIndexOf(find)); 
     var post:String = str.substr(str.lastIndexOf(find) + find.length, str.length); 
     return pre + replace + post; 
    } 
    else 
    { 
     return str; 
    } 
} 

는 것, 그렇지 않으면 전혀 occurance가있는 경우

public static function replaceLastOccurrence(str:String, find:String, replace:String):String { 
    var pre:String = str.substr(0, str.lastIndexOf(find)); 
    var post:String = str.substr(str.lastIndexOf(find)+find.length, str.length); 

    return pre + replace + post; 
} 
0

내가 먼저 확인할 것 발생이 없다면 문자열의 끝을 엉망으로 만든다. `개인 기능 replaceLastOccurrence을 ($ STR : 문자열, $ 찾기 : 문자열, $ 대체 : 문자열) :

관련 문제