インデックスで文字列から一部の文字を削除(楽)

Tinmarino:

FAQ:で楽には、どのように彼らのインデックスに基づいて、文字列からいくつかの文字を削除しますか?

私は3と8のインデックス1を削除したいと言います

xxx("0123456789", (1..3, 8).flat);  # 045679
セバスチャン:

Shnipersons答えのバリアント:

my $a='0123456789';
with $a {$_=.comb[(^* ∖ (1..3, 8).flat).keys.sort].join};
say $a;

1行で:

say '0123456789'.comb[(^* ∖ (1..3, 8).flat).keys.sort].join;

または関数によって呼び出されます:

sub remove($str, $a) {
    $str.comb[(^* ∖ $a.flat).keys.sort].join;
}

say '0123456789'.&remove: (1..3, 8);

またはSTRの増強と:

use MONKEY-TYPING;
augment class Str {
    method remove($a) {
        $.comb[(^* ∖ $a.flat).keys.sort].join;
    }
};

say '0123456789'.remove: (1..3, 8);

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=376965&siteId=1