PowerShell String对象方法 1
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的更多相关文章
- JavaScript Number 对象 Javascript Array对象 Location 对象方法 String对象方法
JavaScript Number 对象 Number 对象属性 属性 描述 constructor 返回对创建此对象的 Number 函数的引用. MAX_VALUE 可表示的最大的数. MIN_V ...
- JavaScript String 对象方法
String 对象方法 方法 描述 anchor() 创建 HTML 锚. big() 用大号字体显示字符串. blink() 显示闪动字符串. bold() 使用粗体显示字符串. charAt() ...
- 几种String对象方法的区别
1.在String对象方法中,发现.slice()方法和.substring()方法的作用几乎相同,都是根据起始索引返回截取得到的字符串.经过查阅资料和实测得到区别: 正常情况下索引都为正值,返回值为 ...
- javascript string对象方法总结
1.anchor() 用于创建html锚,也就是a标签,()中可以带参数,是a标签的name属性值. var string="hello world"; document.writ ...
- javascript中string对象方法中的slice、substring、substr的区别联系
1.slice.substring.snustr均属于String的对象方法,用于截取或提取字符串片段,三者均布破坏原先的字符串,而是以新的字符串返回被提取的部分. <script> va ...
- String对象方法扩展
/** *字符串-格式化 */ String.prototype.format = function(){ var args = arguments;//获取函数传递参数数组,以便在replace回调 ...
- JS-JavaScript String 对象-string对象方法3:concat()
1.concat():用于连接两个或多个字符串. 1).语法:string.concat(string1, string2, ..., stringX) (string1, string2, . ...
- JS-JavaScript String 对象-string对象方法2: indexOf()、lastIndexOf()、charAt()
1.indexOf():可返回某个指定的字符串值在字符串中首次出现的位置. 1).语法:string.indexOf(searchvalue,start): searchvalue:必需.规定 ...
- JS-JavaScript String 对象-string对象方法1:fromCharCode()、charCodeAt()
1.fromCharCode(): 可接受一个指定的 Unicode 值,然后返回一个字符串. 1). 语法:String.fromCharCode(n1, n2, ..., nX) (n1, n2 ...
随机推荐
- [译] 新手和老手都将受益的JavaScript小技巧
这篇文章会分享一些鲜为人知但却很强大的JavaScript技巧, 各个级别的JavaScript开发者都会从中受益. 1. 用数组的length属性清空数组 我们知道在JS中对象类型是按引用传 ...
- typedef与define的区别
1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错.例如:#define PI 3.1415 ...
- Hadoop2.4.1 64-Bit QJM HA and YARN HA + Zookeeper-3.4.6 + Hbase-0.98.8-hadoop2-bin HA Install
Hadoop2.4.1 64-Bit QJM HA and YARN HA Install + Zookeeper-3.4.6 + Hbase-0.98.8-hadoop2-bin HA(Hadoop ...
- linux mount命令学习
我们在下面这篇博文中已经有笼统的学习了文件系统的一些相关知识, http://blog.csdn.net/boyxulin1986/article/details/12107113 本篇我们主要是用来 ...
- javaweb笔记之get和post的不同
1 GET方式 1)提交的参数数据会放在请求信息的URL后面.以?开头,多个参数数据以 & 分 割. 2)浏览器的地址会发生改变 3)参数数据的容量不能超过1KB. 4)不适合敏感数据的提交 ...
- Css轮廓
css code: p{ outline-width:2px; outline-color:aqua; outline-style: groove; }
- js过滤空格
点击查看效果 点击进入下载 <html> <head> <title> 过滤空格 </title> <SCRIPT LANGUAGE=" ...
- 判断http 请求来自于手机还是PC
首先收集了部分客户端请求头部信息如下 iPhone微信: User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_2 like Mac OS X) App ...
- java基础之导入(药师点评)
/** * 药师点评的导入 * @param request * @param response * @param f * @param tmallTcMessageImport * @return ...
- ActiveReport 9手把手搭建环境及实战
本文借鉴葡萄城空间产品,纯属分享,无任何营利目的 下载ActiveReports 9 专业版 打开下面的网站,点击立即下载,请您填写真实电子邮件地址,以获取ActiveReports产品试用版---系 ...