【问题标题】:How to convert a string to an integer in PowerShell?如何在PowerShell中将字符串转换为整数?
【发布时间】:2019-11-11 16:57:26
【问题描述】:

我正在尝试从 PowerShell 中的变量创建字符串。我想将数字显示为字符串而不是整数。

我尝试将 [str] 放在我的变量之前,例如将字符串转换为整数 ([int]),但这给了我一个错误。我也搜索了我的问题,但没有人问过这样的问题。

有问题的代码是“$jstr”行。

for ($j = 0; $j -lt 1000; $j++)
    {
        $jstr = [str]$j
        $dot = "."
        $num = $jstr + $dot
        Write-Host $num, Get-Random -SetSeed $j
    }

我希望输出类似于“1。随机数”,其中 1 是种子数,随机数是映射到该种子的数,

【问题讨论】:

  • 字符串的类型加速器是...[string],而不是[str]。 [咧嘴]
  • 不是 100% 确定你在问什么。标题是“如何在 PowerShell 中将字符串转换为整数?”但是,然后在您的帖子中,您说:“我想将数字显示为字符串而不是整数。”你想要字符串作为整数还是整数作为字符串?
  • 谢谢李,我的问题已经解决了。

标签: string powershell integer int


【解决方案1】:

几种方法...

如果有数字表示为字符串,可以调用stringtoInt32()方法:

您可以将其分配给具有类型标识符的变量:

但是,这仅在字符串是所有数字(没有非数字/非十六进制字符)时才有效。

如果你想另辟蹊径(将整数表示为字符串),请使用toString() 方法:

$integer.toString()

【讨论】:

    【解决方案2】:

    像这样?

    for ($j = 0; $j -lt 6; $j++)                                                                                          
    {
      $rand = Get-Random -SetSeed $j
      "$j.$rand"
    }
    
    0.1866861594
    1.42389573
    2.365335408
    3.688215708
    4.1011161543
    5.1334173171
    

    【讨论】:

      【解决方案3】:

      这是获取列表的一种方法,左边是种子,一个点,然后是随机数。它使用-f 字符串格式运算符来放置数字,以在分配的空间中对齐数字。 [咧嘴一笑]

      $Start = 0
      $End = 10
      $SLength = ([string]$Count).Length
      
      $RMin = 0
      $RMax = 1e3
      $RLength = ([string]$RMax).Length
      
      foreach ($Number in $Start..$End)
          {
          "{0,$SLength}. {1,$RLength}" -f $Number, (Get-Random -SetSeed $Number -InputObject ($RMin..$RMax))
          }
      

      输出...

       0.  607
       1.  602
       2.  997
       3.  636
       4.  143
       5.  839
       6.    6
       7.  404
       8.  536
       9.  394
      10.  124
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-15
        • 2017-11-29
        • 2014-10-08
        • 2010-10-13
        • 1970-01-01
        相关资源
        最近更新 更多