您的位置:首页 > 编程语言 > C#

c# 字符串 截取总结

2010-04-23 14:57 267 查看
第一种方法:

private void checkNumAndLetter(string str,ref int numCount,ref int charCount,ref int chiNumber)
{
int inum = 0;
int ichar = 0;
int ichi = 0;
string strTemp;
for (int i = 0; i < str.Length; i++)
{
strTemp = str.Substring(i, 1);
if ("01234567890123456789".IndexOf(strTemp) > -1)
{
inum++;
}
else if ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ".IndexOf(strTemp) > -1)
{
ichar++;
}
else
{
ichi++;
}

}
numCount = inum;
charCount = ichar;
chiNumber = ichi;
}

//第二种方法

public static string getStr(string s, int l)
{
string temp = s;
if (Regex.Replace(temp ,"[/u4e00-/u9fa5]", "zz", RegexOptions.IgnoreCase).Length <= l)
{
return temp;
}
for (int i = temp.Length; i >= 0; i--)
{
temp = temp.Substring(0, i);
if (Regex.Replace(temp, "[/u4e00-/u9fa5]", "zz", RegexOptions.IgnoreCase).Length <= l - 3)
{
return temp + "";
}
}
return "";
}



/// </summary>
/// <param name="inputString"></param>
/// <param name="len"></param>
/// <returns></returns>
#region 字符串截取函数
public static string CutString(string inputString, int len)
{

ASCIIEncoding ascii = new ASCIIEncoding();
int tempLen = 0;
string tempString = "";
byte[] s = ascii.GetBytes(inputString);
for (int i = 0; i < s.Length; i++)
{
if ((int)s[i] == 63)
{
tempLen += 2;
try
{
if (tempLen >= len)
break;
else
{
tempString += inputString.Substring(i, 1);
}
}
catch
{
break;
}
}
else
{
tempLen += 1;
try
{
if (tempLen > len)
break;
else
{
tempString += inputString.Substring(i, 1);
}
}
catch
{
break;
}
}

}
byte[] mybyte = System.Text.Encoding.Default.GetBytes(inputString);
if (mybyte.Length > len)
//tempString += "…";
tempString += "...";
else if (mybyte.Length <= len)
{
for (int i = 0; i < len - mybyte.Length + 1; i++)
{
tempString += "_";
}
}
return tempString;
}
#endregion
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: