C# 如何给字符串换行并 对齐中英文 比如:abcdefghij //长度为10史蒂夫合适的话的说法 //长度为10我需要这两行是对齐的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 比如:abcdefghij //长度为10史蒂夫合适的话的说法 //长度为10我需要这两行是对齐的。英文后面不要是空的 。不能按长度 要按字节。 abcdefghij //长度为10史蒂夫合适的话的说法 //长度为10 abcdefghij //长度为10史蒂夫合适的话的说法 //长度为10对齐后是什么样的? 这样:abcdefghij史蒂 夫合适的话的说法就是说两边对齐 可以是不一样的 字节应该可能相差1吧 我表达有些问题 简单来说就是 字符串按一定长度分段排列 两边对齐 分多少段不固定 最后一行不用对齐 不能用控件控制吗?web用divwinform用label autosize=true设定宽度不就行了? 不行 我的是一个图片的 title 信息 所以。 web 你根据字符转码将中文1个汉字当做2个字符出来,英文当1个字符出来,算总数据长度,然后按照你的固定长度去判断你每行应该放几个中文字或者几个英文字符或者几个中英字符组合,如你自己举例中:abcdefghij //长度为10史蒂夫合适的话的说法 //长度为1010+20=30,然后每行放15(如果中间是中文则+-1)个长度值,则变为abcdefghij史蒂夫合适的话的说法 ////len:字长度static string NewLineStr(string oldStr, int len){ StringBuilder strb = new StringBuilder(); for (int i = 0, counter = 0; i < oldStr.Length; i++) { strb.Append(oldStr[i]); int charcode = (int)(oldStr[i]); counter += (charcode > 0x4E00 && charcode < 0x9FA5) ? 2 : 1; if (counter % (len << 1) == 0) { strb.Append(Environment.NewLine); } } return strb.ToString();} 判断那里有bug,换成if (counter >= len * 2){ strb.Append(Environment.NewLine); counter = 0;} 判断那里有bug,换成if (counter >= len * 2){ strb.Append(Environment.NewLine); counter = 0;}非常感谢,想要的基本就是这种效果 有点瑕疵就是 中英符号 中英文混合的时候换行会有错开两个字节位的感觉 看起来不是很工整,应该是显示问题吧,还有就是始终觉得效率有点担心, 请高人指点! 急求一段C#检测.net框架代码,哪位高手提供一下呀。 C# 一般使用什么版本管理工具? 向大家请教一个泛型的简单问题? 新手问C#2003打包的问题 新手问题 C#中实例化类的问题 Assembly CreateInstance构造函数在线等 winform drawString 为什么我画上不显示. 谁能给一个公司管理系统? C#windows程序主线程创建三个子线程导致主窗口变卡 求助C#datagridview c#web,求助!
abcdefghij //长度为10
史蒂夫合适的话的说法 //长度为10
我需要这两行是对齐的。英文后面不要是空的 。不能按长度 要按字节。
史蒂夫合适的话的说法 //长度为10
史蒂夫合适的话的说法 //长度为10
对齐后是什么样的?
这样:
abcdefghij史蒂
夫合适的话的说
法
就是说两边对齐 可以是不一样的 字节应该可能相差1吧 我表达有些问题 简单来说就是 字符串按一定长度分段排列 两边对齐 分多少段不固定 最后一行不用对齐
web用div
winform用label autosize=true设定宽度不就行了?
abcdefghij //长度为10
史蒂夫合适的话的说法 //长度为1010+20=30,然后每行放15(如果中间是中文则+-1)个长度值,则变为abcdefghij史蒂
夫合适的话的说法
//
//len:字长度
static string NewLineStr(string oldStr, int len)
{
StringBuilder strb = new StringBuilder();
for (int i = 0, counter = 0; i < oldStr.Length; i++)
{
strb.Append(oldStr[i]);
int charcode = (int)(oldStr[i]);
counter += (charcode > 0x4E00 && charcode < 0x9FA5) ? 2 : 1;
if (counter % (len << 1) == 0)
{
strb.Append(Environment.NewLine);
}
}
return strb.ToString();
}
if (counter >= len * 2)
{
strb.Append(Environment.NewLine);
counter = 0;
}
if (counter >= len * 2)
{
strb.Append(Environment.NewLine);
counter = 0;
}
非常感谢,想要的基本就是这种效果 有点瑕疵就是 中英符号 中英文混合的时候换行会有错开两个字节位的感觉 看起来不是很工整,应该是显示问题吧,还有就是始终觉得效率有点担心,