c# – 如何将String分成chars
public static string kw; public String parse(String keyword) { this.keyword = keyword; char[] letters = keyword.ToCharArray(); string g; long length = System.Convert.ToInt64(keyword.Length.ToString()); for (int i = 0; i <= length-1; i++) { kw = "/"+letters[i]; } return kw; } 因此,如果关键字是“Hello”.我希望这个输出/ h / e / l / l / o但是目前它只输出最后一个字符,在这种情况下/ o 有人可以帮忙吗? 解决方法
on = vs =和String vs StringBuilder
你的问题在于这一行: kw = "/"+letters[i]; 这是一个直接赋值,将覆盖上一次迭代的kw值.也许你想要=.但是,此时您需要了解StringBuilder以及为什么在循环中使用String执行会导致性能不佳. 相关问题 > String vs StringBuilder 关于正则表达式 如果您要学习正则表达式,也可以使用一行来完成.您只需匹配每个字符x并将其替换为/ x. 参考 > regular-expressions.info > The Dot Matches (Almost) Any Character > .NET Framework Class Library – 例 这是一个应该说明的片段: string keyword = "hello"; foreach (char ch in keyword) { Console.Write("[" + ch + "]"); } Console.WriteLine(); // prints "[h][e][l][l][o]" StringBuilder sb = new StringBuilder(); for (int i = 0; i < keyword.Length; i++) { sb.Append("<" + keyword[i] + ">"); } Console.WriteLine(sb); // prints "<h><e><l><l><o>" Console.WriteLine(new Regex(@"(?=.)").Replace(keyword,@"/")); // prints "/h/e/l/l/o" Console.WriteLine(new Regex(@"(.)").Replace(keyword,@"($1$1)")); // prints "(hh)(ee)(ll)(ll)(oo)" 一些关键的想法: >除非您需要显式索引,否则请使用foreach循环 参考 > C# Language Reference – foreach 附件 > Source code and output of snippet on ideone.com (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |