在C#中将字符串连接到char

时间:2009-07-19 06:50:13

标签: c# string char concatenation

我需要将'*'(这是一个字符串)连接到数组中的字符。

例如:

 int count=5;
 string asterisk="*";
  char p[0]='a';
  char p[1]='b';
  char p[2]='a';
  char p[3]='b';
  char p[4]='b';
 for(int i=0;i<count;i++)
 {
   asterisk=asterisk+"*";
  }
   p[0]=p[0]+asterisk;

我该怎么做?我希望结果像“a*****

5 个答案:

答案 0 :(得分:3)

您无法将字符串连接到字符。字符串是一组字符,不会“适合”单个字符。

你可能想要像

这样的东西
char asterisk = '*';
string []p = new string[] { "a", "b", "a", "b" };

p[0] = p[0] + new string(asterisk, count);

答案 1 :(得分:3)

通常,这应该使用StringBuilder来完成,这样可以提供更好的性能(取决于您的代码以及运行它的时间)。
此外,String有一个构造函数,它接受一个char和一个数字,并在字符串中赋予该字符n次http://msdn.microsoft.com/en-us/library/aa331867%28VS.71%29.aspx
第三,看看String.ToCharArray,如

char[] chars = "abcd".ToCharArray();

这可以为你节省一些时间。

答案 2 :(得分:1)

您的示例对我来说看起来不像c#。如果您要做的只是在字符串末尾连接一堆星号,这应该可行:

string myString = "a";

for(int x = 0; x < 5; x++){
    myString += "*";
}

//myString should now equal "a*****"

答案 3 :(得分:1)

您正在尝试将结果字符串存储在同一个char数组中,这是不可能的,因为在一个char变量中,您只能存储一个char,您应该使用string[]或{ {1}}存储结果...

List<string>

或者,如果您有权访问Linq to Objects:

List<string> result = new List<string>();
string asterisk  = new string('*', 5); // Get a string with five * 

foreach (char c in charArray)
{
    result.Add(c + asterisk);
}

答案 4 :(得分:1)

我认为问题是“连接”这个词。我想他想覆盖。所以他可以显示像字符串一样的半密码......

char[] p = { 'a', 'b', 'a', 'b', 'b' };
char[] asterisks = (new String('*', p.Length -1)).ToCharArray();
asterisks.CopyTo(p, 1);

.CopyTo()会将“asterisks”数组写入“p”数组。以前的海报是正确的,你应该像这样使用StringBuilder进行操作,但如果你必须将它作为一个字符数组,这就是这样做的方法。 (假设我明白你想要什么。“我希望结果像”a *****“。”)