2009-07-19 64 views
0

我需要将作为字符串的'*'连接到数组中的字符。将字符串连接到C中的字符#

例如:

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*****

+4

你的问题很不清楚。请给出一些样本输入和输出。也许值得一提的是,更大的局面是 - 可能有更好的方法来处理它。 – 2009-07-19 06:56:41

回答

1

你的例子看起来不像是有效的c#给我。如果你正在试图做的一切是串联在字符串的结尾一堆星号的,这应该工作:

string myString = "a"; 

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

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

您正在尝试存储相同char阵列中生成的字符串,这是不可能的,因为在一个char变量只能存储一个字符,你应该使用string[]List<string>存储结果...

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); 
} 

或者,如果你有机会到LINQ到对象:

var result = charArray.Select(c => c + asterisk); // Select all 
                // chars and concatenate 
                // the variable 
3

您不能将字符串连接到字符。一个字符串是一个字符集合,并且不会“适合”单个字符。

你可能要像

char asterisk = '*'; 
string []p = new string[] { "a", "b", "a", "b" }; 

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

我认为问题是单词“concatenate”。我想他想覆盖。这样他就可以表现出半密码一样串...

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

.CopyTo()将写入“星号”排列到“P”阵列。以前的海报是正确的,因为您应该使用StringBuilder进行这种操作,但是如果您必须将其作为字符数组来使用,则可以这样做。 (假设我明白你想要什么)“我希望结果像”a *****“。”)