字符串操作
时间:2010-10-09 来源:草珊瑚
静态串>字符串操作>比较字符串
Compare是一个静态方法,返回值大于零,strA大于strB,等于零, strA等于strB,小于零,strA小于strB。
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方法。
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相同
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");
}
}
}
}
静态串>字符串操作>定位字符和子串
代码 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();
}
}
}
静态串>字符串操作>格式化字符串
Program.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();
}
}
}
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
}
}
相关阅读 更多 +