String類和StringBuilder類
一、 格式化字符串
Publi1c string ToString(string format,IformatProvider provider)
第一個參數是格式說明符,第二個參數是格式提供者。如果缺少format字符串,就調用方法System.Iconvertible.ToString(),它公包含了IformatProvider參數,並且作用一個默認格式。如果沒有提供任何參數,System.Object.ToString()將使用一個默認的格式說明符和一個默認的格式提供者
格式說明符和用法示例
格式字符 格式說明 舉例 輸出 C或c
貨幣記數
1000.ToString(“C”);
(-1000).ToString(“C”);
$1,000.00
($1,000.00)
D或d
小數記數
1000.ToString(“D”);
1000
E或e
科學記數(冪)
100000.ToString(“E”);
1.00000E+005
F或f
定點記數
1000.ToString(“F4”);
1000.ToString(“F0”);
1000.0000
1000
G或g
通用記數
1000.ToString(“G”);
1000
N或n
數字形式
1000.ToString(“N”);
1,000.00
X或x
十六進制形式
1000.ToString(“X”);
1000.ToString(“x”);
0x1000.ToString(“x”);
3E8
3e8
1000
P或 p
百分數
1.ToString(“P”);
100.00%
R或r
往返.它可以保證字符串表示能轉換回數字形式.它適用於Double類型而不適用於Integer類型
Double d=100.0;
d.Tostring(“R”);
1000
d
短日期模式
5/20/2002
D
長日期模式
Monday,May 20,2002
T
長日間模式
3:51:04 PM
t
短時間模式
3:51 PM
注意,格式字符不區分大小寫,除了“X”和“x”,這種情況下格式字符的大小寫會決定十六進制數字使用的大小寫。上表中顯示的格式化信息公適用於en-US文化。如果使用另一種文化,其輸出就會有所不同。
二、 標記(
String.IndexOfAny 方法),即分離字符串報告指定 Unicode 字符數組中的任意字符在此實例中第一個匹配項的索引。
重載列表 名稱 說明 String.IndexOfAny (Char[])
報告指定 Unicode 字符數組中的任意字符在此實例中第一個匹配項的索引。
String.IndexOfAny (Char[], Int32)
報告指定 Unicode 字符數組中的任意字符在此實例中第一個匹配項的索引。該搜索從指定字符位置開始。
String.IndexOfAny (Char[], Int32, Int32)
報告指定 Unicode 字符數組中的任意字符在此實例中第一個匹配項的索引。搜索從指定字符位置開始,並檢查指定數量的字符位置。
例如:將一句話分離出來:
The IndexPopulationStatus enumeration contains values that are used to specify the type of population in progress即變成一個單詞一個單詞的顯示出來。
string str = "The IndexPopulationStatus enumeration contains values that are used to specify the type of population in progress";
char[] scpators=...{'' '','','',''.'',''?'',''!'',''"'','':'','';''};
int starPos = 0;
int endPos = 0;
do
...{
endPos = str.IndexOfAny(scpators, starPos);
if (endPos == -1) endPos = str.Length;
Console.WriteLine(str.Substring(starPos, endPos - starPos));
starPos = endPos + 1;
} while (endPos < str.Length);
最後結果為:
1、 顛倒字符串次序。
有時需要顛倒一個字符串的次序。
//任何繼承於Array的類都利用Reverse()方法為數組中的元素重新排序。要顛倒這個字符串,應從字符串中創建一個字符數組調用Reverse()方法。結果返回的數組是顛倒字符次序後的字符串。
string str = "What are used to specify the type of population in progress";
char[] scpators = str.ToCharArray();
Array.Reverse(scpators);
Console.WriteLine(str);
Console.WriteLine(scpators);
Console.ReadKey();
2、 排序
字符串有兩種方式排序:
一是不區分文化的方式,只考試被排序字符的實際碼點值,
String.CompareOrdinal 比較兩個字符串而不考慮本地區域性。返回整數值。(0,1,-1)
即String.CompareOrdinal (String, String) 通過計算每個字符串中相應 Char 對象的數值來比較兩個指定的 String 對象。
例:
正則表達式正則表達式(regular expression,簡寫為regexes)是用來操作和檢驗字符串數據的一種強大的工具.正則表達式是一串特殊的字符,它轉換為某種算法,根據這個算法來匹配文本.對許多開發人員來說,正則表達式是新引入的概念,但在Unix系統甚至是Web腳本語言(如JavaScript)中已經得到了廣泛的應用.
NET實現正則表達式的關鍵在於System.Text.RegularExpressions命名空間,它包含了8個類.
l Regex-包含了正則表達式,以及使用正則表達式的各種方法
l MatchCollection-包含了一正則表達式找到的所有匹配項
l Match-包含了一次匹配中所有匹配的文本
l GroupCollection-包含了一次匹配中的所有分組.
l Group-包含了一個分組集合中一個組的細節
l CaptureCollection=包含一個組的所有Capture對象
l Capture-返回組內一次捕獲所匹配的字符串
l RegexCompilationInfo-提供了把Regex編譯為一個獨立程序集所需的細節
1、 Regex類
Regex類不僅可以用來創建正則表達式,而且提供了許多有用的方法,以使用正則表達式來操作字符串數據。例如,搜索字符模式或進行復雜的查找和替換。如果要把一個正則表達式重復用於不同的字符串,就可以創建一個Regex對象。
初始化 Regex 類的新實例。
RegexOptions枚舉 RegexOptions常用選項 成員名稱 說明 Compiled 指定將正則表達式編譯為程序集。這會產生更快的執行速度,但會增加啟動時間。
ECMAScript 為表達式啟用符合 ECMAScript 的行為。該值只能與 IgnoreCase、Multiline 和 Compiled 值一起使用。該值與其他任何值一起使用均將導致異常。
IgnoreCase 指定不區分大小寫的匹配。
Multiline 多行模式。更改 ^ 和 $ 的含義,使它們分別在任意一行的行首和行尾匹配,而不僅僅在整個字符串的開頭和結尾匹配。
None 指定不設置選項。
RightToLeft 指定搜索從右向左而不是從左向右進行。
Singleline 指定單行模式。更改點 (.) 的含義,使它與每一個字符匹配(而不是與除 \n 之外的每個字符匹配)。
Regex的構造函數
名稱 說明
Regex () 初始化 Regex 類的新實例。
Regex (String) 為指定的正則表達式初始化並編譯 Regex 類的一個新實例。
Regex (SerializationInfo, StreamingContext) 使用序列化數據初始化 Regex 類的新實例。
Regex (String, RegexOptions) 用修改模式的選項為指定的正則表達式初始化並編譯 Regex 類的一個新實例。
例如:匹配ABC
Regex rex = new Regex("abc");
//如果不用區分大小寫,則寫成Regex rex = new Regex("abc",RegexOptions.IgnoreCase )
string str = "compute asdf aabc";
Console.WriteLine(rex.IsMatch (str));//最後結果返回為True
IsMatch()方法可以測試字符串,看它是否匹配正則表達式的模式。如果發現了一次匹配,那麼該方法返回True,否則返回False。IsMatch()有一個靜態的重載方法,使用它可以無需顯示地創建一個Regex對象。
名稱 說明 Regex.IsMatch (String) 指示
Regex構造函數中指定的正則表達式在輸入字符串中是否找到匹配項。
Regex.IsMatch (String, String) 指示正則表達式使用 pattern 參數中指定的正則表達式是否在輸入字符串中找到匹配項。
Regex.IsMatch (String, String, RegexOptions) 指示正則表達式使用 pattern 參數中指定的正則表達式和 options 參數中提供的匹配選項是否在輸入字符串中找到匹配項。