use v6.d; # 2020.01 release
my $s = "L1:C1\tL1:C2\tL1:C3\nL2:C1\tL2:C2\tL2:C3\nL3:C1\tL3:C2\tL3:C3";
say $s.split(/\n/).split(/\t/).raku;
("L1:C1", "L1:C2", "L1:C3 L2:C1", "L2:C2", "L2:C3 L3:C1", "L3:C2", "L3:C3").Seq
("L1:C1", "L1:C2", "L1:C3", "L2:C1", "L2:C2", "L2:C3", "L3:C1", "L3:C2", "L3:C3").Seq
只是为了澄清事情,我知道正确的代码是:
$s.split(/\n/)>>.split(/\t/).flat.raku
但我的问题是关于“错误”代码的内部工作。拉库是怎么得出那个结果的?
你正在拆分第一个拆分的结果,这是一个列表;split方法会强制调用任何字符串,然后拆分它。列表将(通过其str
方法)字符串化到由单个空格分隔的成员。这就是为什么一些得到的字段有两个L和C对,中间有一个空格的原因。
这将得到您想要的结果:
say "L1:C1\tL1:C2\tL1:C3\nL2:C1\tL2:C2\tL2:C3\nL3:C1\tL3:C2\tL3:C3"
.split("\n")
.map( *.split( "\t" ).Slip )
因为它拆分第一个拆分的结果,然后将其转换为滑块,以使其滑入更宽的数组。
我试图了解是如何工作的,以及拆分器是如何设计的。我认识到可能是更重要的方法之一,但是当我看到一些第三方实现时,有时我看到他们的拆分器无条件地为返回null。 问题: 普通迭代器和无条件返回null的拆分器有何不同?这样的分裂者似乎违背了分裂的目的
本文向大家介绍SQL 分裂,包括了SQL 分裂的使用技巧和注意事项,需要的朋友参考一下 示例 使用字符分隔符拆分字符串表达式。请注意,这STRING_SPLIT()是一个表值函数。 结果:
如果我想在Flink中分裂一个流,那么最好的方法是什么?
在第二种聚合物的情况下,它将是'b'而不是'a'。当然,如果选择了最终的聚合物,则翻转的定义如下 A[127]=2*A[126]+A[127] 需要注意的是,由于翻转,位置将改变为2、0或-2。 不管怎么说,现在我的问题是,平衡距离比应该的要高得多。理想情况下,我被告知它应该是0,或者最大可能是2和4。比这更大的可能性是微乎其微的。但我的代码经常给出22、30等值。谁能告诉我怎么了?请随时要求进一
我使用preg_split正则表达式将句子拆分成数组。我能够成功地做到这一点。然而,我告诉preg_replace查找的模式的一部分是文本本身的一部分。所以部分文字也被删除了。有没有办法把模式重新插入数组?例如,如果我告诉preg_spit搜索一个句点和其后的一个大写字母,它将从数组中删除这个大写字母,这是我不想要的。 这是代码: 示例字符串: 这是第一句。这是第二句吗?这是第三句!这是第四句:这
QSplitter 实质上是一个窗口部件,但同时它可以包含一些其他窗口部件。在切分窗口(splitter)中的这些窗口部件会通过切分条(splitter handle)而分隔开来。用户可以 通过拖动这些切分条来改变切分窗口中子窗口部件的尺寸。切分窗口常常可以用作布局管理 器的替代,从而可以把更多的控制权交给用户。 11.5.1使用方法 大家知道,QSplitter 是一个容器类,Qt Design