你这个是截取4个字,不是4个字符,你要先分词,然后再截取。
static void Main(string[] args)
{
string str = "Hello world,你好,Hello world,你好!";
Console.WriteLine(strOperation(str,4));
Console.Read();
}
public static string strOperation(string str,int count)
{
Regex re = new Regex(@"[a-zA-Z]+");
Match mc = re.Match(str);
List<string> wordarr = new List<string>();
if (mc.Success)
{
MatchCollection mcs = re.Matches(str);
if (mcs.Count > 0)
{
for (int i = 0; i < mcs.Count; i++)
{
str=str.Replace(mcs[i].Value, i.ToString());
wordarr.Add(mcs[i].Value);
}
}
}
str=str.Replace(" ", "").Substring(0,count);
for (int i = 0; i < count; i++)
{
if (str.Contains(i.ToString()))
{
str = str.Replace(i.ToString(), " "+wordarr[i]);
}
}
return str.Trim();
}
按你的要求写出来了,但感觉你的需求有点问题,”Hello world,你“这个应该是五个字符,还有一个空格。
中英文编码方式是不一样的,一个是1字节,一个是2字节。