第一种方法:
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