0

文字列である「*」を配列内の文字に連結する必要があります。

例えば:

 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

5 に答える 5

3

文字列を文字に連結することはできません。文字列は文字の集まりであり、単一の文字内に「収まる」ことはありません。

あなたはおそらく次のようなものが欲しい

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

p[0] = p[0] + new string(asterisk, count);
于 2009-07-19T06:56:11.967 に答える
3

一般に、これは を使用して行う必要があります。これにより、StringBuilderパフォーマンスが向上します (コードと実行回数によって異なります)。 また、文字列には、文字と数値を取り、その文字を文字列で n回
与えるコンストラクターがあります
、のように、見てString.ToCharArrayください

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

これにより、いくつかの行を節約できます。

于 2009-07-19T06:58:01.713 に答える
1

問題は「連結」という言葉だと思います。彼は上書きしたいと思います。したがって、彼は文字列のようなセミパスワードを表示できます...

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

.CopyTo()は、「アスタリスク」配列を「p」配列に書き込みます。以前のポスターは、このような操作にStringBuilderを使用する必要があるという点で正しいですが、charの配列として持つ必要がある場合は、これがその方法です。(私があなたが望むものを理解していると仮定します。「私は結果が「a *****」のようになりたいです。」)

于 2009-07-19T07:17:55.243 に答える
1

あなたの例は、有効な c# のようには見えません。文字列の末尾に一連のアスタリスクを連結するだけであれば、これでうまくいくはずです。

string myString = "a";

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

//myString should now equal "a*****"
于 2009-07-19T06:54:04.420 に答える
1

結果の文字列を同じchar配列に格納しようとしていますが、1 つの char 変数には 1 つの文字しか格納できないため、結果を格納するには astring[]または aを使用する必要があるため、これは不可能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 to Objects にアクセスできる場合:

var result = charArray.Select(c => c + asterisk); // Select all
                                                  // chars and concatenate
                                                  // the  variable
于 2009-07-19T06:55:40.250 に答える