加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何将String分成chars

发布时间:2020-12-16 01:36:39 所属栏目:百科 来源:网络整理
导读: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
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
> When to use StringBuilder?

关于正则表达式

如果您要学习正则表达式,也可以使用一行来完成.您只需匹配每个字符x并将其替换为/ x.

参考

> regular-expressions.info

> The Dot Matches (Almost) Any Character

> .NET Framework Class Library – Regex.Replace

这是一个应该说明的片段:

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循环
>在循环中构建字符串时,请使用StringBuilder
>正确使用时,正则表达式很棒!

参考

> C# Language Reference – foreach
> .NET Framework Developer’s Guide – Using the StringBuilder Class
> .NET Framework 4 – Regular Expression Language Elements

附件

> Source code and output of snippet on ideone.com

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读