我正在进行排序,并希望控制alpha值的cmp不区分大小写(即。https://perl6.org/archive/rfc/143.html).
有没有:我可能是这个的副词?
您可以传递代码块进行排序。如果块的arity为1,则在进行比较时,它对两个元素都有效。下面是一个示例,显示了上一个答案中的“fc”。
> my @a = <alpha BETA gamma DELTA>;
[alpha BETA gamma DELTA]
> @a.sort
(BETA DELTA alpha gamma)
> @a.sort(*.fc)
(alpha BETA DELTA gamma)
如果您想要“字典”排序顺序,@timotimo在他们建议colate
和coll
进行排序时是正确的。
对列表中的任何内容使用collate()进行排序。如果需要自定义排序,请使用中缀运算符。
$ perl6
To exit tyype 'exit' or '^D'
> <a Zp zo zz ab 9 09 91 90>.collate();
(09 9 90 91 a ab zo Zp zz)
> <a Zp zo zz ab 9 09 91 90>.sort: * coll *;
(09 9 90 91 a ab zo Zp zz)
Perl
由于现有的协议不允许命名值,我们必须添加一个新的,或只写一个子项(也就是说,您可以只使用下面的多个协议,除非有一个可选的只写协议)
这仅在词汇上适用,因此,如果编写此脚本,可能需要根据您所做的操作,将proto/only
子脚本标记为可导出。
proto sub infix:<leg> ( \a, \b, *% ){*}
multi sub infix:<leg> ( \a, \b, :ignore-case(:$i) ){
$i
?? &CORE::infix:<leg>( fc(a) , fc(b) )
!! &CORE::infix:<leg>( a , b )
}
say 'a' leg 'A'; # More
say 'a' leg 'A' :i; # Same
say 'a' leg 'A' :!i; # More
say 'a' leg 'A' :ignore-case; # Same
请注意,:$i
是:i($i)
的缩写,因此这两个命名参数可以写成::忽略大小写(:i($i))
此外,我还使用了fc()
的子表单,而不是方法表单。因为它允许使用字符串的本机形式,而不会导致自动装箱。
问题内容: 我想编写一个Java方法,如果字符串是回文,则返回true。 这是我到目前为止的内容: 我的问题是,它不考虑像这样的单词:回文。 在不区分大小写并忽略标点符号的情况下,测试这是否是回文式的最佳方法是什么。 问题答案: 使用此正则表达式删除所有标点和空格并将其转换为小写
需要制作一个密码程序,用户在开始时设置密码,在程序停止前可以输入密码3次。该程序不能区分大小写。 程序按预期打印,但不区分大小写
问题内容: 说我有两个弦, 我要执行s2包含在中的支票退回s1。我可以这样做: 我很确定这是区分大小写的,但是我无法通过阅读文档确定这一点。如果是这样,我想我最好的方法就是这样: 撇开所有这些,是否还有另一种(可能更好)的方法来完成此任务而不关心区分大小写? 问题答案: 是的,包含的内容区分大小写。你可以将标志一起使用,以区分大小写: 编辑:如果s2包含正则表达式特殊字符(其中有很多),则首先引用
问题内容: 宣言: 然后这个 返回true,但如果声明为: 然后返回false,因为比较区分大小写。 如何使该比较不区分大小写? 问题答案: 您可以使用 将字符串转换为所有小写字符
问题内容: 我正在尝试为其中一个根据您的回答做出响应的程序编写代码。我想这样做,以便某些变量不区分大小写。例如,如果我的变量等于我希望它也等于。那可能吗? 到目前为止,这是我的代码: 我不想为每个答案都设置2种情况,其中一种是大写,另一种是小写。 稍微偏离主题的问题。如何关闭扫描仪的资源泄漏? 问题答案: 值得一提: 或简单地使用:
问题内容: 如何以不区分大小写的方式比较字符串? 例如,“ Go”和“ go”应视为相等。 问题答案: https://golang.org/pkg/strings/#EqualFold是您要寻找的功能。它的用法如下(来自链接文档的示例):