PowerShell String对象方法 1


从之前的章节中,我们知道PowerShell将一切存储在对象中,那这些对象中包含了一系列中的称之为方法的指令。默认文本存储在String对象中,它包含了许多非常有用的处理文本的命令。例如,要确定一个文件的扩展名,可以使用LastIndexOf()获取最后一个字符“.”的位置,继续使用Substring()获取扩展名子串。

PS> $path = "C:\prefs.js"
PS> $path.Substring( $path.LastIndexOf(".")+1 )
Js

另外一条途径,使用Split方法,对文件的完整名称进行分割,得到一个字符串数组,取最后一个元素,PowerShell中可以通过索引-1来获取数组中最后一个元素。

PS> $path.Split(".")[-1]
Js

下面的表格会给出String对象的所有方法:

函数 描述 示例
CompareTo() 与另一个字符串比较 (“Hello”).CompareTo(“Hello”)
Contains() 是否包含制定子串 (“Hello”).Contains(“ll”)
CopyTo() 拷贝子串至新字符串中 $a = (“HelloWorld”).toCharArray()(“User!”).CopyTo(0,

$a, 6, 5)$a

EndsWith() 是否以制定子串结尾 (“Hello”).EndsWith(“lo”)
Equals() 是否与另一个字符串相同 (“Hello”).Equals($a)
IndexOf() 返回第一次匹配的所索引 (“Hello”).IndexOf(“l”)
IndexOfAny() 返回字符串中任意字符的首次匹配索引 (“Hello”).IndexOfAny(“loe”)
Insert() 在指定位置插入字符串 (“HelloWorld”).Insert(6,”brave “)
GetEnumerator() 枚举字符串中所有字符 (“Hello”).GetEnumerator()
LastIndexOf() 字符的最后匹配位置 (“Hello”).LastIndexOf(“l”)
LastIndexOfAny() 任意字符的最后匹配位置 (“Hello”).LastIndexOfAny(“loe”)
PadLeft() 左边补齐空白是字符串至指定长度 (“Hello”).PadLeft(10)
PadRight() 右边填充空白是字符串至指定长度 (“Hello”).PadRight(10) + “World!”
Remove() 从指定位置开始移除指定长度 (“PsTips”).Remove(2,2)
Replace() 替换指定字符串 (“PsTips”).replace(“Ps”,”PS1″)
Split() 以指定分隔符切割字符串 (“HelloWorld”).Split(“l”)
StartsWith() 是否以指定子串开始 (“HelloWorld”).StartsWith(“He”)
Substring() 从指定位置取指定长度子串 “HelloWorld”).Substring(4,3)
ToCharArray() 转换成字符数组 (“HelloWorld”).toCharArray()
ToLower() 转换成小写 (“HelloWorld”).toLower()
ToLowerInvariant

()

以区域规则转换成小写 (“HelloWorld”).ToUpperInvariant()
ToUpper() 转换成大写 (“HelloWorld”).ToUpper()
ToUpperInvariant

()

以区域规则转换成大写 (“HelloWorld”).ToUpperInvariant

()

Trim() 移除字符串前后空格 (” HelloWorld “). Trim()
TrimEnd() 移除字符串结尾的空格 (“HelloWorld “). TrimEnd()
TrimStart() 移除字符串开始的空格 (” HelloWorld”). TrimStart()
Chars() 返回指定位置的字符 (“Hello”).Chars(0)

Split()为例来分析方法

在之前的章节中,我们已经知道可以通过Get-Member来查看一个对象中包含了那些可以被调用的方法。正好最为一个简单的回顾,来查看Split的定义。

PS C:\> ("Pstips.net" | Get-Member Split).definition
string[] Split(Params char[] separator), string[] Split(char[] separator, int count), string[] Split(char[] separator, System.StringSplitOptions options), string[] Split(char[] separator, int count, System.StringSplitOptions options), string[] Split(string[] separator, System.StringSplitOptions options), string[] Split(string[] sepa
rator, int count, System.StringSplitOptions options)

Define属性可以获取方法参数定义,但是可读性比较坑爹。我们仍然用上面表格中的Replace方法,将分隔符稍作替换,即可增强可读性。

PS C:\> ("Pstips.net" | Get-Member Split).definition.Replace("), ", ")`n")
string[] Split(Params char[] separator)
string[] Split(char[] separator, int count)
string[] Split(char[] separator, System.StringSplitOptions options)
string[] Split(char[] separator, int count, System.StringSplitOptions options)
string[] Split(string[] separator, System.StringSplitOptions options)
string[] Split(string[] separator, int count, System.StringSplitOptions options)

之前说过反引号,类似高级语言中的转义符反斜杠。

从上面的输出可以发现Split有6种不同的调用方法,而之前可能更多的只使用过一个参数的方法。PowerShell在处理文本时,可能会碰到多个分隔符,而Split方法调用只须一次即可。

PS C:\> "http://www.pstips.net".split(":./")
http www
pstips
net

中间有空白,咋整,能移除吗,StringSplitOptions轻装上阵:

PS C:\> "http://www.pstips.net".split(":./",[StringSplitOptions]::RemoveEmptyEntries)
http
www
pstips
net

之前有一个小算法题,移除字符串中相邻的重复的空格。在不考虑效率的前提下,可以使用Split先分割,分割后再将得到的元素以指定分隔符拼接。但是拼接用到的Join方法,并不属于string对象,而属于String类,也正是下面要讲的。

PowerShell String对象方法 1的更多相关文章

  1. JavaScript Number 对象 Javascript Array对象 Location 对象方法 String对象方法

    JavaScript Number 对象 Number 对象属性 属性 描述 constructor 返回对创建此对象的 Number 函数的引用. MAX_VALUE 可表示的最大的数. MIN_V ...

  2. JavaScript String 对象方法

    String 对象方法 方法 描述 anchor() 创建 HTML 锚. big() 用大号字体显示字符串. blink() 显示闪动字符串. bold() 使用粗体显示字符串. charAt() ...

  3. 几种String对象方法的区别

    1.在String对象方法中,发现.slice()方法和.substring()方法的作用几乎相同,都是根据起始索引返回截取得到的字符串.经过查阅资料和实测得到区别: 正常情况下索引都为正值,返回值为 ...

  4. javascript string对象方法总结

    1.anchor() 用于创建html锚,也就是a标签,()中可以带参数,是a标签的name属性值. var string="hello world"; document.writ ...

  5. javascript中string对象方法中的slice、substring、substr的区别联系

    1.slice.substring.snustr均属于String的对象方法,用于截取或提取字符串片段,三者均布破坏原先的字符串,而是以新的字符串返回被提取的部分. <script> va ...

  6. String对象方法扩展

    /** *字符串-格式化 */ String.prototype.format = function(){ var args = arguments;//获取函数传递参数数组,以便在replace回调 ...

  7. JS-JavaScript String 对象-string对象方法3:concat()

    1.concat():用于连接两个或多个字符串. 1).语法:string.concat(string1, string2, ..., stringX)    (string1, string2, . ...

  8. JS-JavaScript String 对象-string对象方法2: indexOf()、lastIndexOf()、charAt()

    1.indexOf():可返回某个指定的字符串值在字符串中首次出现的位置. 1).语法:string.indexOf(searchvalue,start):     searchvalue:必需.规定 ...

  9. JS-JavaScript String 对象-string对象方法1:fromCharCode()、charCodeAt()

    1.fromCharCode(): 可接受一个指定的 Unicode 值,然后返回一个字符串. 1). 语法:String.fromCharCode(n1, n2, ..., nX)  (n1, n2 ...

随机推荐

  1. linux c 之signal 和sigaction区别

    http://blog.csdn.net/muge0913/article/details/7331129 要对一个信号进行处理,就需要给出此信号发生时系统所调用的处理函数.可以对一个特定的信号(除去 ...

  2. VS2010发布、打包安装程序

    1. 在vs2010 选择“新建项目”→“ 其他项目类型”→“ Visual Studio Installer→“安装项目”: 命名为:Setup1 . 这是在VS2010中将有三个文件夹, 1.“应 ...

  3. 黑马程序员_Java泛型

    泛型 概述: ClassCaseException:类型转换异常. 代码中不加泛型,编译没问题,运行可能会发生异常.但是用户解决不了,这样程序就存在安全隐患.所以我们希望在编译时期就能看出问题,程序员 ...

  4. Codeforces - ZeptoLab Code Rush 2015 - D. Om Nom and Necklace:字符串

    D. Om Nom and Necklace time limit per test 1 second memory limit per test 256 megabytes input standa ...

  5. 广州Uber优步司机奖励政策(12月28日到1月3日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  6. log.sh

    #!/bin/echo Warnning, this library must only be sourced! # vim: set expandtab smarttab shiftwidth=4 ...

  7. javascript 单个图片的淡入淡出效果和多张图片的淡入淡出效果

    最近刚好在看之前妙趣网站的javascript 初级运动教程,教程里说设置图片的透明度使用了一个变量.这种方法确实不错,但是燕姐喜欢麻烦.就用自己的理解方法写了一遍.其中也是各种坑.现在先把一个图片的 ...

  8. LaunchScreen.xib 设置启动图

    1.LaunchScreen.xib 中拖入UIImageView 约束都设置为0 2.新建一个Image Set 起名为LaunchScreen  Devices设置为:Device Speecif ...

  9. js判断上传文件大小

    下面提供三款网页特效判断上传文件大小哦,这三种方法是现在限制文件上传大小比较好的方法,可以在客户上传文件时限制上传文件大小判断处理<!doctype html public "-//w ...

  10. [Angular 2] Interpolation: check object exists

    In Angular2, sometime we use @Output to pass data to parent component, then parent may pass the data ...