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 ...
随机推荐
- 【转】ArrayList和LinkedList的几种循环遍历方式及性能对比分析
原文网址:http://www.trinea.cn/android/arraylist-linkedlist-loop-performance/ 主要介绍ArrayList和LinkedList这两种 ...
- cxgrid按条件计算合计值 TcxTreeList计算合计值
在Footer的第一列显示[合计:] 加一个Summary项,Column设为Grid的第一列,Kind设为skNone 在该Summary项的OnGetText事件中,输入: procedure T ...
- samba服务器的搭建及使用
一.Samba服务器的安装及配置 1.samba服务器的安装 rpm –ivh /mnt/Packages/samba-3. 5. 10-125. el6.i686.rpm 需要挂载红帽6的光盘 2. ...
- CSS3/HTML5实现漂亮的分步骤注册登录表单
分步骤的登录注册表单现在也比较多,主要是能提高用户体验,用户可以有选择性的填写相应的表单信息,不至于让用户看到一堆表单望而却步.今天和大家分享的就是一款基于HTML5和CSS3的分步骤注册登录表单,外 ...
- java中实现查看今天是星期几的代码实现
public void getDate() { String[] weekDays = {"星期日", "星期一", "星期二", &quo ...
- 关于IE8导航串行的问题
1.概述: 作为一个前端人员,多浏览器兼容是必须必备的技能,现在一般要求是兼容IE8及以上,如果兼容IE6的话,会麻烦一些,这里介绍的是在IE8状态下我们导航条错位的问题. 2.导航错位代码 < ...
- JavaScript基础知识(学习笔记)
1. 在JavaScript中所有事物都是对象:字符串.数字.数组.日期等等2. 在JavaScript中,对象是拥有属性和方法的数据3. 属性是与对象相关的值,方法是能够在对象上执 ...
- Github 开源编辑器 ATOM 已开放下载
Update:2014-09-08 Atom 于5月6日正式开放下载(遗憾的是只有 MAC 版本),并且在 MIT 协义下开源,从界面可以看出,这款软件很像 Sublime Text,不过由于她的开源 ...
- openwrt上网配置的一些理解(三)
接着上面的继续捣腾multiwan,首先考虑一下上一篇中记录的multiwan配置,这里的配置是否正确,得研究一下.先贴一下上一篇的配置文件,如下: config 'multiwan' 'config ...
- Tree( 树) 组件[2]
本节课重点了解 EasyUI 中 Tree(树)组件的使用方法, 这个组件依赖于 Draggable(拖动)和 Droppable(放置)组件.一. 异步加载如果想从数据库里获取导航内容, 那么就必须 ...