自动产生n个相同字符 比如:nnnnnnn;不用循环行吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 字符串的string和stringBuilder有重载构造好像是不常用,记错了,不要弄死我 而且如果你不使用循环的话,为了对付字符串长度不超过3的特殊情况,还要多加一层判断,从这个角度看,还没有循环代码来得"优雅", 不知道完美何来??String s = "ASDFGHJKL";for(int i = 3;i < s.Length - 3;i++){//..............}多简单...String s = "ASDFGHJKL";if(s.Length > 6){//其实归根到底还是在这里用循环,区别只在于你自己写循环还是微软写循环...} 可以的吧string Append(string s,char c,int len){ if(len<=0) return s; char[] szEnd = new char[len]{c}; return string.Format("{0}{1}",s,new string(szEnd));} 那按楼上的方式最终是这样:String s = "ASDFGHJKL";if(s.Length > 6){char[] szEnd = new char[s.Length - 6]{'X'};s = s.SubString(0,3) + new String(szEnd) + s.SubString(s.Length-3);}得到s = "ASDXXXJKL";不过这还是看不出比更简单得多的一个完美在哪... new string('X', 100);不过内部实现还是循环,像楼上说的,微软帮你写循环 string str = new string('n', 10);//nnnnnnnnnn String的构造函数都不知道,基础类库需要补习一下了~ string a="你是大笨蛋 连这个都不知道";a.PadRight(100,'哈'); //PadLeft 是 左边的 string str = new string('n', 10);//nnnnnnnnnn别人抢了去了,这个方法最方便, 要循环吗? /// <summary> /// 对内容的部分数据进行标记处理 /// </summary> /// <param name="content">要处理的内容,如:8800099</param> /// <param name="Char">用于标记处理的字符,如:*</param> /// <param name="headCount">取的头部字符数据,如:2</param> /// <param name="footCount">取的尾部字符数据,如:2</param> /// <returns>如:头部字符+标记字符+尾部字符</returns> /// <example><code> /// //text 的结果为 "88***99" /// string text = MarkContent("8800099",'*',2,2); /// </code></example> public static string MarkContent(string content, char Char, int headCount, int footCount) { //空字符或长度不够 if (string.IsNullOrEmpty(content)) return string.Empty; if (content.Length < headCount + footCount) return content; //取头尾字符 string headChars = content.Substring(0, headCount); string footChars = content.Substring(content.Length - footCount); //构造模式字符 string Chars = new string(Char, (content.Length - headCount - footCount)); return headChars + Chars + footChars; } string a = "aaa"; a.PadRight(100, "x"); a.PadRight(3, "bbb"); C#里面怎样限制textBox控件里键入或粘贴的最小字符数 如何把net frame框架打包到安装程序中? 试图访问已卸载的 AppDomain。 C# VScrollbar问题 C# 怎样实现 每隔5分钟执行某个函数一次 ?? 关于DataSet数据库更新 出现一个这样的问题? 简单问题,在线等,绘制的图形显示在什么控件上? window.showModalDialog传值问题! 希望用类似的c# grivew控件完成多列图片动态信息显示 关于.net实现生成器的实现 C# winform中button鼠标放上去显示的文本在哪里属性设置
好像是
不常用,记错了,不要弄死我
String s = "ASDFGHJKL";
for(int i = 3;i < s.Length - 3;i++){
//..............
}多简单...String s = "ASDFGHJKL";
if(s.Length > 6){
//其实归根到底还是在这里用循环,区别只在于你自己写循环还是微软写循环...
}
{
if(len<=0) return s;
char[] szEnd = new char[len]{c};
return string.Format("{0}{1}",s,new string(szEnd));
}
String s = "ASDFGHJKL";
if(s.Length > 6){
char[] szEnd = new char[s.Length - 6]{'X'};
s = s.SubString(0,3) + new String(szEnd) + s.SubString(s.Length-3);
}
得到s = "ASDXXXJKL";不过这还是看不出比更简单得多的一个完美在哪...
a.PadRight(100,'哈'); //PadLeft 是 左边的
/// <summary>
/// 对内容的部分数据进行标记处理
/// </summary>
/// <param name="content">要处理的内容,如:8800099</param>
/// <param name="Char">用于标记处理的字符,如:*</param>
/// <param name="headCount">取的头部字符数据,如:2</param>
/// <param name="footCount">取的尾部字符数据,如:2</param>
/// <returns>如:头部字符+标记字符+尾部字符</returns>
/// <example><code>
/// //text 的结果为 "88***99"
/// string text = MarkContent("8800099",'*',2,2);
/// </code></example>
public static string MarkContent(string content, char Char, int headCount, int footCount)
{
//空字符或长度不够
if (string.IsNullOrEmpty(content)) return string.Empty;
if (content.Length < headCount + footCount) return content; //取头尾字符
string headChars = content.Substring(0, headCount);
string footChars = content.Substring(content.Length - footCount); //构造模式字符
string Chars = new string(Char, (content.Length - headCount - footCount)); return headChars + Chars + footChars;
}
a.PadRight(100, "x");
a.PadRight(3, "bbb");