首页 > 系统相关 >(19)Powershell字符串合并运算符

(19)Powershell字符串合并运算符

时间:2024-01-24 13:57:59浏览次数:23  
标签:join 19 连接 运算符 Windows 字符串 Powershell

(19)Powershell字符串合并运算符


Powershell 提供了对字符串的合并运算符,连接运算符 -join 将一组字符串连接成单个字符串,子字符串按其在命令中出现的顺序添加到生成的字符串中。

连接运算符

Powershell中字符串的连接运算符的语法如下:

-Join <String[]>
<String[]> -Join

参数解释。

<String[]>

要连接的子字符串数组,即要对哪些子字符串进行连接。

[Delimiter]

指定放在被连接字符串之间的一个或多个字符。默认为空字符串("")。需要注意的是,拆分运算符会在拆分后的字符串中去掉分隔符,而连接运算符会在连接后的字符串中插入指定的分隔符,拆分和合并是两个相对的运算。

PS C:\Windows\System32\WindowsPowerShell\v1.0> -join "a","c","e"
a
c
e

但是如果要使用一元联接运算符,需要请将被连接的字符串用圆括号括起,或将被连接的字符串存储在变量中,然后提交该变量以进行连接。例如:

PS C:\Windows\System32\WindowsPowerShell\v1.0> -join ("a","b","c")
abc

PS C:\Windows\System32\WindowsPowerShell\v1.0> $x = "a","b","c"


PS C:\Windows\System32\WindowsPowerShell\v1.0> -join $x
abc

除了连接运算符 -join ,在 Powershell算术运算符 中讲过,算术运算符 "+" 也具有字符串的连接功能,但是要求是第一个操作数必须是字符串,否会尝试算术运算加的运算。例如:

PS C:\Windows\System32\WindowsPowerShell\v1.0> "a"+"b"+"c"
abc

在实际运用中,使用 "+" 进行字符串的连接很方便,也很直观,也是使用频率很高的字符串连接操作。

下面再举三个使用 -join 进行字符串连接的例子:

PS C:\Windows\System32\WindowsPowerShell\v1.0> -join ("Windows","Powershell","5.0")
WindowsPowershell5.0

PS C:\Windows\System32\WindowsPowerShell\v1.0> "Windows","Powershell","5.0" -join " "
Windows Powershell 5.0

PS C:\Windows\System32\WindowsPowerShell\v1.0> $x = "Wind","sP","ershell"

PS C:\Windows\System32\WindowsPowerShell\v1.0> $x -join "ow"
WindowsPowershell


总结

Powershell 中利用 -join 关键字对字符串进行连接操作,也可以使用算术运算符 "+" 进行字符串的连接,但是前提是第一个操作数必须是字符串。连接和拆分是对立的运算,例如合并可以使用创建指定的时间"+"指定名称的文件名,而时间和指定名称可能来自不同的地方。

标签:join,19,连接,运算符,Windows,字符串,Powershell
From: https://www.cnblogs.com/zhang-snail/p/17984519

相关文章

  • (18)Powershell中的字符串拆分运算符
    (18)Powershell中的字符串拆分运算符Powershell中提供了对字符串的拆分操作运算符。-split运算符将一个字符串拆分成多个字符串。拆分运算符拆分运算符用于将一个或多个字符串拆分为多个子字符串。可更改拆分操作的以下元素:(1)定界符。默认为空白,但是可指定字符、字符串、模......
  • 【题解 P4197】 Peaks
    Peaks题目描述在Bytemountains有\(n\)座山峰,每座山峰有他的高度\(h_i\)。有些山峰之间有双向道路相连,共\(m\)条路径,每条路径有一个困难值,这个值越大表示越难走。现在有\(q\)组询问,每组询问询问从点\(v\)开始只经过困难值小于等于\(x\)的路径所能到达的山峰中第\(......
  • CF-1921-F-根号分治
    1921-F题目大意有一个长为\(n\)的序列\(a\),有\(q\)次询问,对于每次询问:给定\(s,d,k\),请输出\(\sum_{i=1}^{k}i*a_{s+(i-1)*d}\)Solution根号分治。对于\(d\ge\sqrt{n}\)的情况,直接暴力计算即可。对于\(d\le\sqrt{n}\)的情况,这时需要预处理两个数组:\(pre,sum\),这里\(pr......
  • [整理参考] CMD/DOS下运算符号的作用
    因关于DOS符号的总结很少,所以根据[1],经过几次整理之后,写了下面这个《CMD/DOS符号参考》,推荐新手好好看看,老手温习。标题:[整理参考]CMD/DOS下符号的作用参考作者:lxmxn[at]bbs.cn-dos.net时间:2007-5-27邮箱:lxmxn520[at]163.com说明:1、转帖请注明原帖出处属于中国DOS联盟(www.cn-do......
  • QOJ 1963 Squid Game
    令\(a\leb\lec\)。这显然是可以通过交换得到的。考虑若\(a=1\)怎么做。考虑到若把\(b\)或者\(c\)给\(a\),\(a\)就会翻倍。那就把\(b\)拆成二进制,考虑让\(b\)变为\(0\)。从低位到高位,如果\(b\)这一位为\(1\)就让\(b\)给\(a\),否则\(c\)给\(a\)。那......
  • The 2nd Universal Cup. Stage 19: Estonia J
    首先二分答案\(0/1\)分数规划是直接的,之后这题有一个非常反直觉的结论是直接忽略掉关于血量时刻\(\geqslant0\)的限制,仅仅要求最终血量\(\geqslant0\),改造问题与原问题等价。感性理解一下就是中间过程有\(<0\)但最终\(\geqslant0\)的卡特兰式增长速率其实是小于仅要求......
  • contest/1922 D Berserk Monster
    来来来,看看英语不好的我最开始理解的题目是怎么样的:(1)有一堆怪物在打架,每一次从左到右,一只怪物向离自己最近的怪物攻击一次,每一次怪物都攻击一次后会死掉多少只怪物。怎么做......(2)仔细阅读以后发现可能是所有怪物同时发动攻击。变简单了。(3)再阅读,发现所有怪物被攻击以后,受到的......
  • Microsoft 365 开发:开发者如何使用Delegated Access通过PowerShell调用Graph API
    51CTOBlog地址:https://blog.51cto.com/u_13969817MicrosoftGraphAPI是一种RESTfulwebAPI,它整合了对各种Microsoft365服务的访问,允许开发人员创建跨多个平台与数据交互的应用程序,包括AzureActiveDirectory、SharePoint、OneDrive、Outlook等。MicrosoftGraphPowerShell适......
  • 19_Java流程控制01-Scanner进阶使用
    Scanner进阶使用整数:hasNextInt()——nextInt()小数:hasNextFloat()——nextFloat()if:判断语句while:循环语句练习:循环输入,求和与平均数,回车确认,非数字结束指令并输出结果。Scannerscanner=newScanner(System.in);//开始doublesum=0;intm=0;System.out.println("请输......
  • 【Powershell】在 PowerShell 数组中添加和删除项
    在PowerShell数组中添加和删除项是一个可能会导致一些意外的报错,这里我把可用的办法总结一下。问题:创建一个数组,我们将记下System.Array类型:$Fruits="Apple","Pear","Banana","Orange"$Fruits.GetType()但是,如果我们尝试向数组添加或删除项目,则会出现“集合大小固定”的错误......