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
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
相关文章推荐
- C#字符串截取学习总结
- C#字符串的截取函数用法总结
- paip.截取字符串byLastDot方法总结uapi python java php c# 总结
- c# 字符串 截取总结
- paip.截取字符串byLastDot方法总结uapi python java php c# 总结
- C#操作字符串方法总结<转>
- C#几种截取字符串的方法小结
- C# 之 字符串截取--Substring
- 用Java实现按字节长度截取中英文数字字符串的方法总结
- [导入]用C#截取指定长度的中英文混合字符串 改进版
- C#将字符串转换为整型的三种方法的总结
- PHP截取中文字符串方法总结
- 字符串处理总结之一(C#String类)
- C#截取字符串的方法汇总
- C# 字符串操作方法总结
- 字符串截取固定长度的方法(C#)
- 字符串截取(做项目时的总结-待完善)
- shell中截取字符串方法总结
- shell中截取字符串方法总结
- 用C#截取指定长度的中英文混合字符串(转)