函數 | 描述 | 示例 |
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:\&; ("jb51.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:\&; ("jb51.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:\&; "https://www.jb51.net".split(":./") http www pstips net
中間有空白,咋整,能移除嗎,StringSplitOptions輕裝上陣:
PS C:\&; "https://www.jb51.net".split(":./",[StringSplitOptions]::RemoveEmptyEntries) http www pstips net
之前有一個小算法題,移除字符串中相鄰的重復的空格。在不考慮效率的前提下,可以使用Split先分割,分割后再將得到的元素以指定分隔符拼接。但是拼接用到的Join方法,并不屬于string對象,而屬于String類,也正是下面要講的。
Text and Regular Expressions
原文: https://www.jb51.net/string-object-methods.html