Ruby字符串为何意外结果如此长尾?

2026-04-11 17:310阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计244个文字,预计阅读时间需要1分钟。

Ruby字符串为何意外结果如此长尾?

使用此代碼:`\t\ttest\t\t.split(/\t/)`,預期結果為:`[, , test, , , ]`。但實際結果為:`[, , test]`。這是因為當使用 `\t` 作為分隔符進行分割時,如果分隔符在字符串的開始或結束位置,它們不會被包括在分割結果中。因此,最後兩個空字符串被省略了。若要保留所有分隔符,可以在分割時排除它們。

使用此代码:

"\t\ttest\t\t\t".split(/\t/)

我期待以下结果:

=> ["", "", "test", "", "", ""]

但结果是:

=> ["", "", "test"]

为什么?

Ruby字符串为何意外结果如此长尾?

如果省略limit参数,则返回的空字段将保留在返回的数组之外.如果是否定的,则返回:

# Supply -1 as the limit parameter "\t\ttest\t\t\t".split(/\t/, -1) => ["", "", "test", "", "", ""]

这在String.split() documentation.中有详细说明

本文共计244个文字,预计阅读时间需要1分钟。

Ruby字符串为何意外结果如此长尾?

使用此代碼:`\t\ttest\t\t.split(/\t/)`,預期結果為:`[, , test, , , ]`。但實際結果為:`[, , test]`。這是因為當使用 `\t` 作為分隔符進行分割時,如果分隔符在字符串的開始或結束位置,它們不會被包括在分割結果中。因此,最後兩個空字符串被省略了。若要保留所有分隔符,可以在分割時排除它們。

使用此代码:

"\t\ttest\t\t\t".split(/\t/)

我期待以下结果:

=> ["", "", "test", "", "", ""]

但结果是:

=> ["", "", "test"]

为什么?

Ruby字符串为何意外结果如此长尾?

如果省略limit参数,则返回的空字段将保留在返回的数组之外.如果是否定的,则返回:

# Supply -1 as the limit parameter "\t\ttest\t\t\t".split(/\t/, -1) => ["", "", "test", "", "", ""]

这在String.split() documentation.中有详细说明