Asy*_*syk 3 c# string parsing letters
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;
}
Run Code Online (Sandbox Code Playgroud)
因此,如果关键字是"Hello".我希望这个输出/ h/e/l/l/o但是目前它只输出最后一个字符,在这种情况下/ o
有人可以帮忙吗?
=vs +=和StringvsStringBuilder你的问题在于这一行:
kw = "/"+letters[i];
Run Code Online (Sandbox Code Playgroud)
这是一个直接赋值,将覆盖kw上一次迭代的值.也许你想要+=.然而,在这一点上,你需要知道StringBuilder,为什么这样做+=与String在循环中产生糟糕的表现.
如果您要学习正则表达式,也可以使用一行来完成.您只需匹配每个字符x并替换为/x.
这是一个应该说明的片段:
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)"
Run Code Online (Sandbox Code Playgroud)
一些关键的想法:
StringBuilder| 归档时间: |
|
| 查看次数: |
248 次 |
| 最近记录: |