【问题标题】:What is the fastest and most concise way to select the first character of a string using PowerShell?使用 PowerShell 选择字符串的第一个字符的最快、最简洁的方法是什么?
【发布时间】:2015-08-26 20:19:20
【问题描述】:

目的:要从字符串中提取第一个字符,即8应该从8.0.26中提取

尝试: "8.0.26".substring(0,1) 返回 8

问题:这是使用 PowerShell 从字符串中选择第一个字符的最快、最简洁的方法吗?

【问题讨论】:

    标签: string powershell text-extraction


    【解决方案1】:

    我没有任何证据,但这个 sn-p 似乎证明索引(如在 briantist 的回答中)更快。

    "starting"
    
    $foo = "hello"
    for ($i = 0; $i -lt 1000000; $i++) {
        $bar = $foo[0]
        #$bar = $foo.substring(0,1)
    }
    
    "stopping"
    

    自己试试看。

    更新:运行 Measure-Command 并确认在我的计算机上索引到字符串比子字符串更快。您的里程可能会有所不同。

    【讨论】:

    • 如果你想真正检查一下,你可以把它包装在Measure-Command :)
    • 还要记住索引返回一个[char],如果需要一个[string](不清楚),那么它应该用演员表来衡量。
    • @briantist 两者都好。上面有 [string] 会慢一些,但仍然比 substring 快。我会将 Measure-Command 作为练习留给提问者 :)
    • @briantist 我在开什么玩笑——我的好奇心战胜了我。使用索引(带强制转换)比使用子字符串更快(与 4 相比需要大约 3 秒)。没有演员表,它接近 2 秒。
    • 哈哈,干得好;你已经有我的投票,否则我会再次投票。
    【解决方案2】:

    我的意思是,我想这取决于您所说的最快是什么意思。最高效?打字最快?你想要[char] 还是[string]

    "8.0.26"[0]
    [string]"8.0.26"[0]
    

    【讨论】:

      猜你喜欢
      • 2015-04-11
      • 2010-10-05
      • 2011-03-14
      • 2019-12-27
      • 2012-03-15
      • 2014-09-03
      • 1970-01-01
      • 2016-06-22
      • 2010-09-14
      相关资源
      最近更新 更多