2

String.replace は文字列内の最初の文字列を置き換えますが、文字列内の最後の文字列を置き換えたいと思います。それを行う簡単な方法はありますか?

4

3 に答える 3

2

lastIndexOf関数を使用して、置換する文字列がどこにあるかを判断し、出現の前後に部分文字列を追加して、目的の結果を得ることができます。

于 2012-04-18T14:17:26.540 に答える
1

提案された関数にエラーがあります...これが修正されたものです:

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;
}
于 2012-11-08T17:29:11.983 に答える
0

発生があるかどうかを最初に確認します。

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;
    }
}

そうしないと、出現がない場合、文字列の末尾が台無しになります。

于 2013-05-11T10:31:07.833 に答える