字串操作>靜態串String

weixin_34219944發表於2010-10-09

靜態串String>字串操作>比較字串

Compare是一個靜態方法,返回值大於零,strA大於strB,等於零, strA等於strB,小於零,strA小於strB。

ExpandedBlockStart.gifString.Compare方法比較字串
using System;
using System.Collections.Generic;
using System.Text;

namespace Compare
{
    
class Program
    {
        
static void Main(string[] args)
        {
            System.String str 
= "這是用COMPARE方法";
            System.String str2 
= "這是用compare方法";
            
int i = String.Compare(str, str2);
            Console.WriteLine(
"使用Compare(string strA, string strB)方法返回的結果");
            DisplayResult(i);
            i 
= String.Compare(str, str2,true);
            Console.WriteLine(
"使用Compare(string strA, string strB, bool ignoreCase)方法返回的結果");
            DisplayResult(i);
            i 
= String.Compare(str, str2,StringComparison.CurrentCulture);
            Console.WriteLine(
"使用Compare(string strA, string strB, StringComparison comparisonType)方法返回的結果");
            DisplayResult(i);
            i 
= String.Compare(str, str2,true,new System.Globalization.CultureInfo("zh-cn"));
            Console.WriteLine(
"使用Compare(string strA, string strB, StringComparison comparisonType)方法返回的結果");
            DisplayResult(i);
            i 
= String.Compare(str,0,str2,0,5);
            Console.WriteLine(
"使用Compare(string strA, int indexA, string strB, int indexB, int length);方法返回的結果");
            DisplayResult(i);
            Console.ReadLine();
        }
        
static void DisplayResult(int i)
        {
            
if (i < 0)
            {
                Console.WriteLine(
"Str大於Str2");
            }
            
else if (i == 0)
            {
                Console.WriteLine(
"Str等於Str2");
            }
            
else if (i > 0)
            {
                Console.WriteLine(
"Str大於Str2");
            }
         }
    }
}


如果使用== 或者!=操作符進行字串比較,實際上就是在呼叫Equals方法。

ExpandedBlockStart.gifEquals方法
using System;
using System.Collections.Generic;
using System.Text;

namespace Equals
{
    
class Program
    {
        
static void Main(string[] args)
        {
            
string strA = "這是將要比較的字串一";
            
string strB = "這是將要比較的字串二";
            
bool equalsResult;
            equalsResult 
= String.Equals(strA, strB);
            DisplayResult(equalsResult);
            equalsResult 
= strA.Equals(strB);
            DisplayResult(equalsResult);
            equalsResult 
= strA.Equals(strB, StringComparison.Ordinal);
            DisplayResult(equalsResult);
            equalsResult 
= String.Equals(strA, strB, StringComparison.Ordinal);
            DisplayResult(equalsResult);

        }
        
static void DisplayResult(bool bl)
        {
            
if (bl)
                Console.WriteLine(
"這兩個字串是相等的");
            
else if (bl == false)
            {
                Console.WriteLine(
"這兩個字串不相等");
            }
        }
    }
}


CompareTo方法的比較結果與Compare相同

ExpandedBlockStart.gifCompareTo方法
using System;
using System.Collections.Generic;
using System.Text;

namespace CompareTo
{
    
class Program
    {
        
static void Main(string[] args)
        {
            
string strA = "這是要比較的字串一";
            
string strB = "這是要比較的字串二";
            
int comparetoResult=strA.CompareTo(strB);
            DisplayResult(comparetoResult);
            Console.ReadLine();
        }
        
static void DisplayResult(int i)
        {
            
if (i < 0)
            {
                Console.WriteLine(
"Str大於Str2");
            }
            
else if (i == 0)
            {
                Console.WriteLine(
"Str等於Str2");
            }
            
else if (i > 0)
            {
                Console.WriteLine(
"Str大於Str2");
            }
        }
    }
}


 

靜態串String>字串操作>定位字元和子串

ExpandedBlockStart.gif程式碼
using System;
using System.Collections.Generic;
using System.Text;

namespace IndexOf
{
    
class Program
    {
        
static void Main(string[] args)
        {
            
string str = "++這是一個綜合使用定位子串方法的C#示例++";
            Console.WriteLine(str);
            Console.WriteLine(
"從字串出濾除掉++字串");
            
//使用TrimStart和TrimEnd擷取指定字元陣列的字元
            string tempstr =str.TrimStart("++".ToCharArray()).TrimEnd("++".ToCharArray());            
            Console.WriteLine(
"使用TrimStart和TrimEnd方法的實現結果為:{0}",tempstr);            
            
//使用Substring方法擷取指定陣列的字元。
            tempstr = str.Substring(0,str.LastIndexOfAny("++".ToCharArray())-1);
            tempstr 
= tempstr.Substring(tempstr.LastIndexOfAny("++".ToCharArray())+1);
            Console.WriteLine(
"使用Substring的實現結果為:{0}",tempstr);
            Console.WriteLine(
"使用StartWith與EndWith方法");
            
//判斷指定的字串++是否位於字串str的開頭,如果是,則返回True,否則,返回False
            if(str.StartsWith("++"))
            {
                Console.WriteLine(
"字串以子串++作為開頭");
            }
            
//判斷指定的字串++是否位於字串str的結尾,如果是,則返回True,否則,返回False
            if (str.EndsWith("++"))
            {
                Console.WriteLine(
"字串以子串++作為結尾");
            }
            Console.WriteLine(
"str.IndexOf");
            
//獲取指定的字元+在字串str中的位置。如果存在,則返回在字串中的索引
            int i = str.IndexOf("+");
            
if (i >= 0)
            {
                Console.WriteLine(
"+字元存在於字串str中,索引位置是{0}",i);
            }
            
else
            {
                Console.WriteLine(
"+字元不存在於字串str中");
            }
            
//獲取指定的字元陣列++在字串str中的位置。如果存在,則返回在字串中的索引
            Console.WriteLine("str.IndexOfAny");
             i 
= str.IndexOfAny("++".ToCharArray(),0,str.Length-1);
            
if (i >= 0)
            {
                Console.WriteLine(
"++字元存在於字串str中,索引位置是{0}", i);
            }
            
else
            {
                Console.WriteLine(
"++字元不存在於字串str中");
            }
            
//獲取指定的字元+在字串str中的位置。如果存在,則返回在字串中的最後位置的索引
            Console.WriteLine("str.LastIndexOf");
             i 
= str.LastIndexOf("+");
            
if (i >= 0)
            {
                Console.WriteLine(
"+字元存在於字串str中,最後的索引位置是{0}", i);
            }
            
else
            {
                Console.WriteLine(
"+字元不存在於字串str中");
            }
            
//獲取指定的字元陣列++在字串str中的位置。如果存在,則返回在字串中的最後位置的索引
            Console.WriteLine("str.LastIndexOfAny");
             i 
= str.LastIndexOfAny("++".ToCharArray(),0);
            
if (i >= 0)
            {
                Console.WriteLine(
"++字元存在於字串str中,最後的索引位置是{0}", i);
            }
            
else
            {
                Console.WriteLine(
"++字元不存在於字串str中");
            }
            Console.ReadLine();
        }
    }
}


靜態串String>字串操作>格式化字串

ExpandedBlockStart.gifProgram.cs
using System;
using System.Collections.Generic;
using System.Text;

namespace FormatString
{
    
class Program
    {
        
static void Main(string[] args)
        {
            
double d = 12.345;
            
int i = 12;
            
int x = 6;
            Console.WriteLine(
string.Format("將Double型別的值顯示為貨幣形式為:{0:C}",d));
            Console.WriteLine(
string.Format("將Double型別的值顯示為十進位制形式為:{0:D}", i));
            Console.WriteLine(
string.Format("今天的日期是_短日期格式形示:{0:d}",DateTime.Now));
            Console.WriteLine(
string.Format("今天的日期是_長日期格式形示:{0:D}", DateTime.Now));
            Console.WriteLine(
string.Format("今天的日期是_完整日期格式形示:{0:f}", DateTime.Now));
            
//使用自定義的格式化字串,將傳入引數6*5,如果格式字元指定為X6,則6*6.
            Console.WriteLine(String.Format(new CustomerFormat(), "{0} 使用自定義的B16格式定義為{1:X5}"new object[] { x, x }));
            Console.ReadLine();
        }
    }
}


ExpandedBlockStart.gifCustomerFormat.cs
using System;
using System.Collections.Generic;
using System.Text;

namespace FormatString
{
    
/// <summary>
    
/// 自定義格式化字元的示例
    
/// </summary>
    class CustomerFormat:IFormatProvider,ICustomFormatter
    {
        
#region IFormatProvider 成員
        
//這個方法將被String.Format呼叫,以獲取一個ICustomFormatter的例項來處理格式化。
        public object GetFormat(Type formatType)
        {
            
//如果型別為ICustomFormatter。
            if (formatType == typeof(ICustomFormatter))
            {
                
return this;
            }
            
else
            {
                
return null;
            }
        }
        
#endregion
        
#region ICustomFormatter 成員
        
//String.Format方法獲取到ICustomeFormatter之後,將為每個引數呼叫Format方法。
        public string Format(string format, object arg, IFormatProvider formatProvider)
        {
            
if (format == null)
            {
                
//如果沒有指定格式化提供者,則不使用格式輸出。
                return string.Format("{0}", arg);
            }
            
//如果格式字串不是以X為開頭。
            if (!format.StartsWith("X"))
            {
                
//如果format不是一個己定義的自定義格式字元,那麼就使用IFormattable的ToString()的格式化支援。
                if (arg is IFormattable)
                {
                    
//直接呼叫引數的格式化輸出,並指定foramt,和formatProvider.
                    return ((IFormattable)arg).ToString(format, formatProvider);
                }
                
//如果args物件不支援IFormattable,呼叫Object的Tostring.不做任何格式化操作
                else if (arg != null)
                {
                    
return arg.ToString();
                }
            }
            
//如果格式字元是以X字元開頭。
            format = format.Trim(new char[] { 'X' });
            
int b = Convert.ToInt32(format);
            
int c = Convert.ToInt32(arg);
            
//輸出格式字元。
            return "[自定義格式化例子" + c*b+"]";                     
        }
        
#endregion
    }
}


靜態串String>字串操作>連線字串和分割字串

ExpandedBlockStart.gif連線
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    
class Program
    {
        
static void Main(string[] args)
        {
            
string s1 = "第一個串";
            
string s2 = "第二個串";
            
string s3 = "第三個串";
            Console.WriteLine(
"用System.String的Concat方法:"+string.Concat(s1, s2, s3));
            Console.WriteLine(
"用+操作符:" + string.Concat(s1, s2, s3));
            Console.ReadLine();
        }
    }
}
ExpandedBlockStart.gif分割
using System;
using System.Collections.Generic;
using System.Text;

namespace Contract
{
    
class Program
    {
        
static void Main(string[] args)
        {
            
string str = "Hello,World";
            Console.WriteLine(
"分割前的字串為:{0}", str);
            
char[] sepa = new char[] { ',' };
            
string[] strs=str.Split(sepa);
            Console.WriteLine(
"分割後的字串為");
            
foreach (string s in strs)
            {
                Console.WriteLine(s);
            }
            Console.ReadLine();
        }
    }
}


靜態串String>字串操作>插入和填充字串

ExpandedBlockStart.gifInsert方法
using System;
using System.Collections.Generic;
using System.Text;

namespace Insert
{
    
class Program
    {
        
static void Main(string[] args)
        {
            
string str = "Hello,World!";
            
//Insert方法可在字串的任意位置插入任意的字元,兩個引數,第一個是要插入的索引位置,第二個是要插入的字串
            string str1 = str.Insert(6"Our ");
            Console.WriteLine(str1);
            Console.ReadLine();
        }
    }
}


ExpandedBlockStart.gifPadRight,PadLeft方法
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    
class Program
    {
        
static void Main(string[] args)
        {
            
string strLeft = "前導字串填充!";
            
//在字串的前面填充+字元,使其總長度達到20個
            Console.WriteLine(strLeft.PadLeft(20'+'));
            
string strRight = "後置字串填充!";
            Console.WriteLine(strRight.PadRight(
20'+'));
            Console.ReadLine();

        }
    }
}


 

靜態串String>字串操作>刪除和剪下字串 

 

ExpandedBlockStart.gifRemove方法
using System;
using System.Collections.Generic;
using System.Text;

namespace Remove
{
    
class Program
    {
        
static void Main(string[] args)
        {
            
string str = "演示Remove功能";
            
//Remove方法指定要刪除的字元長度,第一個引數是索引位置,第二個引數是長度
            Console.WriteLine(str.Remove(26));
            Console.ReadLine();

        }
    }
}


ExpandedBlockStart.gif剪下字串
using System;
using System.Collections.Generic;
using System.Text;

namespace TrimDemo
{
    
class Program
    {
        
static void Main(string[] args)
        {
            
string[] stringArray = GetStringArray();
            Console.WriteLine(
"需要執行處理的字串為:{0}", String.Concat(stringArray));
            
for (int i = 0; i <= stringArray.GetUpperBound(0); i++)
            {
                stringArray[i] 
= stringArray[i].Trim();
            }
            Console.WriteLine(
"經過Trim()後的字串為:{0}"string.Concat(stringArray));
            
for (int i = 0; i <= stringArray.GetUpperBound(0); i++)
            {
                stringArray[i] 
= stringArray[i].Trim("".ToCharArray());
            }
            Console.WriteLine(
"去掉字串陣列中的你字後是:{0}"string.Concat(stringArray));
            stringArray 
= GetStringArray();
            Console.WriteLine(
"使用TrimStart和TrimEnd方法處理字串中的前導與後置空格");
            
for (int i = 0; i <= stringArray.GetUpperBound(0); i++)
            {
                stringArray[i] 
= stringArray[i].TrimStart(null).TrimEnd(null);
            }
            Console.WriteLine(
"使用TrimStart和TrimEnd方法處理後的結果是:{0}"string.Concat(stringArray));
            Console.ReadLine();
        }
        
public static string[] GetStringArray()
        {
            
string[] StringArray = { " 你好  ""   你可否告訴我   ""  你的  ""  名字是你  " };
            
return StringArray;
        }
    }
}


靜態串String>字串操作>複製字串 

ExpandedBlockStart.gifCopy和CopyTo方法
using System;
using System.Collections.Generic;
using System.Text;

namespace copyCopyTo
{
    
class Program
    {
        
static void Main(string[] args)
        {
            
string sourcestr = "這是源字串";
            
//使用Copy方法,這時產生了一個新的串,Str2並不是引用str1指向的串,而是產生了一個新的副本。
            string destinationstr=String.Copy(sourcestr);
            Console.WriteLine(
"使用Copy方法呼叫的結果:{0}", destinationstr);
            
//------------------------------------------------
            char[] destination =  { 'T''h''e'' ''i''n''i''t''i''a''l'' ',
                
'a''r''r''a''y' };

            Console.WriteLine(destination);
            
//使用CopyTo方法,將指定的源字串複製到char陣列中
            sourcestr.CopyTo(0, destination, 4, sourcestr.Length-1);
            Console.WriteLine(
"下面是呼叫CopyTo方法後的呼叫結果");
            Console.WriteLine(destination);
            Console.ReadLine();
       }
    }
}


靜態串String>字串操作>替換字串

ExpandedBlockStart.gifReplace方法
using System;
using System.Collections.Generic;
using System.Text;

namespace Replace
{
    
class Program
    {
        
static void Main(string[] args)
        {
            
string str = "這是要被替換的源字串";
            Console.WriteLine(str);
            
string str2=str.Replace("要被替換的源字串""己被替換的字串");
            Console.WriteLine(str2);
            Console.ReadLine();
        }
    }
}


靜態串String>字串操作>更改大小寫

ExpandedBlockStart.gif程式碼
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    
class Program
    {
        
static void Main(string[] args)
        {
            
string str = "Hello,Sam";
            
string str2 = str.ToUpper();
            Console.WriteLine(
"轉換為大寫:{0}", str2);
            
string str3 = str.ToLower();
            Console.WriteLine(
"轉換為小寫:{0}", str3);
            Console.ReadLine();
        }
    }
}


 

相關文章