跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 为什么分割字符串时开头或者结尾为关键词时,会生成空字符串
未分類
21 7 月 2020

为什么分割字符串时开头或者结尾为关键词时,会生成空字符串

为什么分割字符串时开头或者结尾为关键词时,会生成空字符串

資深大佬 : hjahgdthab750 4

如题,写了几年的程序今天 debug 时才发现这个问题,

本来是直接取 rawResults[0], 但运行时总是出错。

不太明白为什么是这种逻辑

"BC".split('B') # ['', 'C'] 
 for _,i := range strings.Split("BCB", "B"){   fmt.Println(i+"@")  }   // @   // [email protected]   // @ 

大佬有話說 (9)

  • 資深大佬 : pixiaotiao

    用你的例子 [”,’C’].join(‘B’); [‘C’].join(‘B’); 自己品

  • 資深大佬 : goofool

    s[0:0]是有效的,返回空字符串

  • 資深大佬 : shintendo

    如果没有这个空字符串,你就无法从分割出来的数组反推出原字符串吧。
    比如 str.split(‘B’) == [‘C’],你无法知道 str 是 BC 还是 CB 还是 BCB

  • 資深大佬 : misaka19000

    看下源代码不就知道了

  • 資深大佬 : aguesuka

    大概是双射函数?

  • 資深大佬 : littleylv

    当分隔符恰好在最前面的时候,第一个肯定是空字符串;
    当分隔符恰好在最后面的时候,最后一个肯定是空字符串。
    这是必须的。Python PHP JS 都是这样的结果

  • 資深大佬 : mornlight

    rawResults[0] 逻辑上取的是第一个分隔符左边的字符串。空串不能扔掉,不然乱了。

  • 資深大佬 : crella

    ruby: puts ‘BCCB’.split(‘B’).inspect

    [“”, “CC”]
    和
    @littleylv 说的有差别

  • 資深大佬 : apporoad

    @pixiaotiao 代码果然是最好的解释

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具