简单的C# string字符串问题!

来源:百度知道 编辑:UC知道 时间:2024/05/11 01:42:58
我要在一个固定长度的区域显示字符串,如果字符串超过了这个宽度那么剩下的部分就由...代替,这看起来很容易解决,用如下方法就可以:
if(str.Length>10)
str=str.Substring(0,4)+"....";
但是问题来了,str中的字符可以是中文也可以是英文,
str1="中中中中中...";
str2="中aaaa...";
很明显str2和str1中的字符数是一样多,但是所占的宽度却不一样,如果这样排出来就不好看了,那么我应该采用什么方法,使得str1只显5个字符,str2显示出8个字符,那么这样看起来就整齐了!
str1="中中中中中...";
str2="中aaaaaaa...";
或者是不是有方法检测一个字符串占用的宽度?

赠送一个我写的类:)*注意,下面int len是字节数不是字符数

using System;
using System.Web;
using System.Text;

namespace lance
{
/// <summary>
/// 字符串处理类StringHandle
/// lance@2007-2-2
/// </summary>
public class StringHandle
{
/// <summary>
/// 静态方法:截取字符串长度
/// </summary>
/// <param name="inputString">要截取的字符串</param>
/// <param name="len">结果字符串的字节数</param>
/// <returns>返回截取后的字符串,如果长度大於len则截取后加...如果小於等於len则显示全部</returns>
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++)