Raku根据index删除字符串中的字符

示例说明:0123456789,删除索引为1-3,以及8的字符串,结果应该为:045679。

实现

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

可以简写为一行代码:

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


版权声明:著作权归作者所有。

相关推荐

vim查找替换字符串命令

vim使用 :s(substitute)命令来做字符串替换,格式如下::s/<查找文本>/<替换新的文本>/<flags>替换的几种情况::s/foo/bar/ 替换当前行第一个 foo为 bar:s/foo/bar/g 替换当前行所有 foo为 bar:n,$s/foo/bar/ 替换第 n 行开始到最后一行中每一行的第一个 foo为 bar:n,$

JavaScript(ES6)判断字符串是否包含子字符串的方法

ES6 includesES6的字符串新增了includes方法,我们可以用它来判断是否包含子字符串。str.includes(searchString[, position]) searchString:查询的子字符串position:可选,开始搜索的位置,默认为0'Blue Whale'.includes('Blue'); // returns

Python:字符串和datetime的转换

Python的字符串和时间的转换可以分别使用strptime和strftime。strptime(string parse time)datetime.strptime(date_string, format),根据format指定的时间格式解析用于表示时间的字符串date_string。>>>from datetime import&nb

Kotlin:基本类型 - 字符串

Kotlin字符串使用String表示类型,为不可变类型。字符串表示字符串有两种表示方式:单行和多行。 单行单行使用双引号把内容括起来。val s = “Hello,World” 如果需要在单行里表示换行的字符串需要对换行符转义val s = “Hello, World \n” 多行多行用来表示原始的字符串,

TypeScript:字符串转换为数字

在TypeScript,String转换为Number有以下方式:Number构造函数(推荐)let n = Number('1234') // 1234 let nan = Number('abcd') // NaN +号操作符let n = +'1234'