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. java 枚举类型

    原来枚举类型还可以这样玩... public enum Tenum { None(1),ByteArray(2),List(3),Map(4); private int id; private Ten ...

  2. windows server2012域服务器降级的方法

    最近在一个新的网络环境里建立windows域服务器,准备建立主.备两台域服务器.在一台新服务器上面安装了windows2012R2并配置了DC服务.域和林的级别设置为Windows2012R2级别.在 ...

  3. Intellj Idea 2016.1.3的使用

    Intellj Idea 2016.1.3的使用:http://blog.csdn.net/bleachswh/article/details/51811055 极客学院教程:http://wiki. ...

  4. PHP设计模式笔记六:数据对象映射模式 -- Rango韩老师 http://www.imooc.com/learn/236

    数据对象映射模式 1.数据对象映射模式,是将对象和数据存储映射起来,对一个对象的操作会映射为对数据存储的操作 2.在代码中实现数据对象映射模式,我们将实现一个ORM类,将复杂的SQL语句映射成对象属性 ...

  5. JavaScript经典魔力代码

    是什么使得JavaScript不同于其他程序设计语言,在浏览器修饰方面表现出其优异的特性?毫无疑问,JavaScript在Web应用领域受到的好评,既源于它自身灵活的动态特性,也源于浏览器对它充分的支 ...

  6. c# winform InvokeRequired 解决跨线程访问控件

    C#中禁止跨线程直接访问控件,InvokeRequired是为了解决这个问题而产生的,当一个控件的InvokeRequired属性值为真时,说明有一个创建它以外的线程想访问它. Windows 窗体中 ...

  7. iOS分享 - 对象间的通信之delegate、notificationCenter与block

    在项目开发中,常常会涉及到对象之间的通信,而为了降低对象间的耦合,会采用delegate.notificationCenter.block三种方式来进行实现,对于他们的使用,也许大家都能熟练掌握,但是 ...

  8. progit-zh(Git中文文档)

    发现好像在墙外,还是下载下来看会快点 链接: http://pan.baidu.com/s/1o8EiDMq 密码: vzf9

  9. Android 命令

    连接调试 adb connect 127.0.0.1:6555

  10. 安装spark1.3.1单机环境

    本文介绍安装spark单机环境的方法,可用于测试及开发.主要分成以下4部分: (1)环境准备 (2)安装scala (3)安装spark (4)验证安装情况 1.环境准备 (1)配套软件版本要求:Sp ...