asp.net中C#字串操作函數與方法

來源:互聯網
上載者:User

(1)取字串長度 <string>.Length;
(2)字串轉為位元碼 GetBytes(<string>)
(3)字串相加 推薦StringBuilder sb = new StringBuilder();sb.Append(<string>);
(4)截斷字串的一部分 變數.SubString(起始位置,截取位元);
(5)查指定位置是否為空白字元 char.IsWhiteSpace(字串變數,位元);
(6)查字元是否是標點符號 char.IsPunctuation(‘字元');
(7)把字元轉化為數字,查代碼點 (int)'變數'
(8)把數字轉為字元,查代碼代表的字元 (char)代碼
(9)清除字串前後包含的空格 變數.Trim()
(10)替換字串:字串變數.Replace(原字串,新的字串)
(11)刪除字串最後一個字元的3種方法

 代碼如下 複製代碼
Eg:string s = “1,2,3,4,5,”;
a) s.SubString(0,s.Length-1)//刪除最後一個逗號
b) s.ToString().RTrim(‘,');//刪除逗號,跟的變數是任何有效字串
c) s.TrimEnd(‘,');//刪除逗號,後面跟的變數是數組
char[] mychar={‘5',','};//刪除‘5‘以及',‘
s.TrimEnd(mychar);

(12)Split的3種方法
a) 用單個字元來分隔 <string>.Split(new char[]{‘字元'}) // <string>.Split(‘字元');
b) 用多個字元來分隔 <string>.Split(new char[2]{‘字元',''})
c) 用字串來分隔 Regex.Split(<string>,”字串”,RegexOptions.IgnoreCase);

(13)幾種輸出字串的格式

 代碼如下 複製代碼
ToString(“n”); //產生12,345.00
ToString(“C”); //產生¥12,345.00
ToString(“e”); //產生1.234500e+004
ToString(“f4”); //產生12345.0000
ToString(“x”); //產生3039(16進位)
ToString(“p”); //產生1,234,500.00%

(14)把123456789轉換為12-345-6789的3種方法

 代碼如下 複製代碼
(a)A = int.Parse(a).ToString(“##-###-####”);
(b)A = a.Insert(5,”-”).Insert(2,“-”);
(c)Using System.Text.RegularExpressions; //先引用
Regex reg = new Regex(@“^(d{2})(d{3})(d{4})$”);
A = reg.Replace(a,”$1-$2-$3”);

(15)輸出21個A的簡單方法 striing str = new string(‘A',21);
(16)得到隨機數的方法

 代碼如下 複製代碼
Ramdom r = new Ramdom();
Int n1 = r.Next(); //返回非負隨機整數
Int n2 = r.Next(10); //返回一個小於所指定最大值(10)的非負隨機整數
Int n3 = r.Next()%10; //返回一個小於所指定最大值(10)的非負隨機整數
Int n4 = r.Next(1,20); //返回一個指定範圍(1~20)內的隨機整數
Int n5 = r.NextDouble(); //得到一個介於0.0~1.0之間的隨機整數

(17)Int32.TryParse(),Int32. Parse(),Convert.ToInt32()比較:
都是將字串轉換為整數數字

 代碼如下 複製代碼
Int32.TryParse(string,out int);
Int = Int32. Parse(string);
Int = Convert.ToInt32(string);

比較:Convert.ToInt32()在null時不拋出異常而是返回零;Int32. Parse()會拋出異常;Int32.TryParse()不拋出異常,會返回true或false來說明解析是否成功。如果解析錯誤,則out調用放將會得到零值;
從效能上講,Int32.TryParse()優於Int32.Parse(),而Int32.Parse()優於Convert.ToInt32()。
建議:在.NET1.1下用Int32.Parse();在.NET2.0下用Int32.TryParse()。


補充

 代碼如下 複製代碼

//獲得漢字的區位碼
    byte[] array = new byte[2];
    array = System.Text.Encoding.Default.GetBytes("啊");
  
  
  
  int i1 = (short)(array[0] - '''');
    int i2 = (short)(array[1] - '''');
  
  
  //unicode解碼方式下的漢字碼
    array = System.Text.Encoding.Unicode.GetBytes("啊");
    i1 = (short)(array[0] - '''');
    i2 = (short)(array[1] - '''');
  
  
  //unicode反解碼為漢字
    string str = "4a55";
    string s1 = str.Substring(0,2);
    string s2 = str.Substring(2,2);
  
  
  int t1 = Convert.ToInt32(s1,16);
    int t2 = Convert.ToInt32(s2,16);
  
  
  array[0] = (byte)t1;
    array[1] = (byte)t2;
  
  
  string s = System.Text.Encoding.Unicode.GetString(array);
  
  
  //default方式反解碼為漢字
    array[0] = (byte)196;
    array[1] = (byte)207;
    s = System.Text.Encoding.Default.GetString(array);
  
  
  //取字串長度
    s = "iam方槍槍";
    int len = s.Length;//will output as 6
    byte[] sarr = System.Text.Encoding.Default.GetBytes(s);
    len = sarr.Length;//will output as 3+3*2=9
  
  
  //字串相加
    System.Text.StringBuilder sb = new System.Text.StringBuilder("");
    sb.Append("i ");
    sb.Append("am ");
    sb.Append("方槍槍");
  
  /////////////////////////////////////////////////////////////////////
  
  
  
  string --> byte array
  
  byte[] data=Syste.Text.Encoding.ASCII.GetBytes(string);
  
  string --> byte
  
  byte data = Convert.ToByte(string);
  
  byte[]-->string
  
  string string = Encoding.ASCII.GetString( bytes, 0, nBytesSize ); 
 

 

// reverse  倒序輸出

            string str = Console.ReadLine();
            for (int i = str.Length - 1; i >= 0; i--)
            {
                Console.Write(str[i]);
            }
            Console.ReadLine();

 

對字串處理的常見功能

 代碼如下 複製代碼

* 計算字串的長度 *

string myString = "This is a test!";
Console.WriteLine("Text is :{0}",myString)
Console.WriteLine("Text's long is :{0}",myString.Length)

* 轉換大小寫 *

myString = myString.ToLower(); //所有字元轉換成小寫
myString = myString.ToUpper(); //所有字元轉換成大寫

* 刪除前後空格 *

myString = myString.Trim(); //同時刪除字串前後的空格
char[] trimChars = {' ','e','s'}; //準備刪除的字元
myString = myString.Trim(trimChars); //刪除所有指定字元
myString = myString.TrimEnd(); //刪除字串後的空格
myString = myString.TrimStart(); //刪除字串前的空格

* 添加空格 *

myString = myString.PadRight(14,' '); //當字串長度不夠14位時,在他的右邊用指定輸入鍵台
myString = myString.PadLeft(14,' '); //當字串長度不夠14位時,在他的左邊用指定輸入鍵台

* 拆分字串 *

string[] nStrs = myString.Split(' ',3); //按照空格進行拆分,並且返回前三個字串


* 擷取子字串 *

string a = myString.Substring(2,2); //從myString字串的第三位開始擷取兩個字元,因為索引起始位是0

* 替換字串中的字元 *

string a = myString.Replace("i","o"); //將這個字串中的所有“i”替換成“o”


C#中字串實際上是Char變數的唯讀數組。可以用下面的方法訪問字串中每一個字元,但是不能修改他們。

string myString = "This is a test!";
foreach (char myChar in myString)
{
Console.Write("{0}",myChar);
}

要想得到一個可讀寫的字元數組,你可以這樣。

char[] myChars = myString.ToCharArray();

特殊字元的表示方法

由於在C#中使用雙引號劃分字串的開始和結束,那麼對於一些特殊字元,例如雙引號本身就需要使用叫做逸出字元的輔助字元來表示了

字串的比較等常用操作

1.字串比較

 代碼如下 複製代碼
string.Compare(x,y);
<0: x 小於 y。 或 x 為空白引用。
=0: x 等於 y。
>0: x 大於 y。 或 y 為空白引用。
string.Equals(x,y);
true x 等於 y。
false x 不等 y。
2.從字串中提取子串
StringBuilder 類沒有支援子串的方法,因此必須用String類來提取。
string mystring="My name is ynn.";
//Displays "name is ynn."
Console.WriteLine(mystring.Substring( 3 ));
//Displays "ynn"
Console.WriteLine(mystring.Substring( 11,3 ));

3.格式化數字
c、C         貨幣格式。
d、D         十進位格式。
e、E         科學計數(指數)格式。
f、F         固定點格式。
g、G         常規格式。
n、N         數字格式。
r、R         往返格式,確保將已轉換成字串的數字轉換回數字時具有與原數字相同的值。
x、X         十六進位格式。

 代碼如下 複製代碼
double val=Math.PI;
Console.WriteLine(val.ToString( ));    //displays 3.14159265358979
Console.WriteLine(val.ToString("E"));//displays 3.141593E+000
Console.WriteLine(val.ToString("F3");//displays 3.142
int val=65535;
Console.WriteLine(val.ToString("x"));    //displays ffff
Console.WriteLine(val.ToString("X"));    //displays FFFF
Single val=;
Console.WriteLine(val.ToString("p"));    //displays 12.30 %
Console.WriteLine(val.ToString("p1"));    //displays 12.3 %

預設格式化會在數字和百分比符號之間放入一個空格。定製方法如下:
其中NumberFormatInfo類是System.Globalization命名空間的一個成員,因此該命名空間必須匯入到程式中。

 代碼如下 複製代碼
Single val=;
object myobj=NumberFormatInfo.CurrentInfo.Clone( ) as NumberFormatInfo;
NumberFormatInfo myformat=myobj as NumberFormatInfo;
myformat.PercentPositivePattern=1;
Console.WriteLine(val.ToString("p",myformat)); //displays 12.30%;
Console.WriteLine(val.ToString("p1",myformat)); //displays 12.3%;

格式化具有很大的靈活性。下面的例子示範一個沒有意義的貨幣結構:

 代碼如下 複製代碼
double val=1234567.89;
int [] groupsize={2,1,3};
object myobj=NumberFormatInfo.CurrentInfo.Clone( );
NumberFormatInfo mycurrency=myobj as NumberFormatInfo;
mycurrency.CurrencySymbol="#"; //符號
mycurrency.CurrencyDecimalSeparator=":"; //小數點
mycurrency.CurrencyGroupSeparator="_";    //分隔字元
mycurrency.CurrencyGroupSizes=groupsize;
// 輸出 #1_234_5_67:89
Console.WriteLine(val.ToString("C",mycurrency));

最後一個類自己慢慢看吧

 代碼如下 複製代碼


using System;


namespace testStringApp
{
 /// <summary>
 /// Class1 的摘要說明。
 /// </summary>
 class Class1
 {
  /// <summary>
  /// 應用程式的主進入點。
  /// </summary>
  [STAThread]
  static void Main(string[] args)
  {
   //
   // TODO: 在此處添加代碼以啟動應用程式
   //
   //直接給字串賦值
   string strA = "This is a string";
   Console.WriteLine ("strA: "+strA);
   //ToCharArray方法,建立Char數組;IndexOf方法,尋找子串位置
   char[] charArray = strA.ToCharArray(0,strA.IndexOf ("string"));
   //使用new關鍵字初始化字串,作用等同於charArray.ToString()
   string strB = new string (charArray);
   Console.WriteLine ("strB: "+strB);
   //Insert方法,插入子串
   string strC = strA.Insert (strA.IndexOf ("string"),"another ");
   Console.WriteLine ("strC: "+strC);
   //+操作符,連接字串
   string strD = strA + strB;
   Console.WriteLine ("strD: "+strD);
   //String.Concat方法,連結字串,相當於+
   //String.Equals方法,比較字串,相當於==
   if (String.Equals (strD,String.Concat (strA,strB)))
   {
    if (strD == strA+strB)
    {
     Console.WriteLine ("String.Concat等同於+/n,System.Equals等同於==");
    }
   }
   //Trim方法,刪除字串中的空格或其它字元
   string strE = strA.Trim();
   Console.WriteLine ("strE: "+strE);
   //使用/顯示引號"和反斜線/
   string strF = "C://Windows//System32//";
   Console.WriteLine ("/"" + strF + "/"");
   //使用@顯示引號"和反斜線/
   string strG = @"C:/Windows/System32/";
   Console.WriteLine (@"""" + strG + @"""");
   //string轉換為int型
   string strH = "12345";
   int theInt = int.Parse (strH);
   Console.WriteLine ("科學計數顯示整數{0:E}",theInt);
   Console.WriteLine ("十六進位顯示整數{0:X}",theInt);
   //string轉換為float型
   string strI = "123.45";
   float theFloat = float.Parse (strI);
   Console.WriteLine ("顯示浮點數,指定小數位元{0:F4}",theFloat);
            Console.ReadLine();
  }
 }
}

1)截取字串
使用substring方法,而該方法在c#中有兩個重載函數:substring(參數),substring(參數1,參數2),用法如下:

 代碼如下 複製代碼
string A ="I'm a string";
sting B=A.substring(1);
sting C=A.substring(1,6);

其中傳入的參數1為字串的起始位置,字元子串B將截取字串A的第2個字元之後所有的字元.
字元子串C將截取字串A的第2個字元之後的長度為6的字串.
參數必須大於等於0,如果小於0將拋出ArgumentOutOfRange異常.
2)字串轉化為字元數組
首先,string類型變數可以看成為char變數的唯讀數組,這樣就可以使用如下文法訪問每個字元:
string A = "i'm a string"
char B =A[1];
而要是把字串變為可寫的char數組,可以使用TocharArray()方法:
char [] = A.Tochararray();
使用B.Length擷取字串的長度.
3)轉換大小寫
<string>.ToLower() 轉換成小寫
<string>.ToUpper() 轉換成大寫
4)刪除字串種的空格或者指定的字元
 刪除字串前後的空格:
<string>.Trim()
刪除指定的字元:
首先利用char數組指定特定字元
char[] C ={' ','e',}
<string>.Trim(C)
也可以使用Trimstart(),TrimEnd()分別去除前後的空格或者指定的字元
5)在字串前後添加空格或者指定的字元
<string>.PadLeft(參數) <string>.PadRight(參數)  參數為添加空格後字串的長度
<string>.PadLeft(參數1,參數2) 參數1為使字串達到的長度,參數2為指定添加的字元.
6)indexof()的用法
IndexOf()
尋找字串中指定字元或字串首次出現的位置,返回首索引值,如:
str1.IndexOf("字"); //尋找“字”在str1中的索引值(位置)
str1.IndexOf("字串");//尋找“字串”的第一個字元在str1中的索引值(位置)
str1.IndexOf("字",start,end);//從str1第start+1個字元起,尋找end個字元,尋找“字”在字串STR1中的位置[從第一個字元算起]注意:start+end不能大於str1的長度
7)insert()的用法
<string>.insert(參數1,參數2)
參數1為插入子字串的其實位置,參數2為要插入的子字串
8)比較字串的大小
Compare(str1,str2)——比較兩個字串 str1,str2的大小,如果大於返回正數,等於返回0,小於返回負數
9)替換指定的字串
String.Replace(參數1,參數2)——用指定的字元替換字串中的指定字元
字串的處理方法還有很多,這裡就不一一列舉了,以後用到在慢慢學習.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.