如何在 c# 中为字符串类型反转 for 循环?我需要每次迭代删除一个字符
How to reverse for loop in c# for string type ? i need to remove one character each iteration
static void Task()
{
string x = "*";
for (int i = 0; i < 4; i++)
{
Console.WriteLine(x);
x += "*";
}
}
它输出
*
**
***
****
他妈的只用“for”循环怎么反转?
特别是包含循环...
只要把它转过来,它从 4 开始下降到 1,打印那么多星星:
for (int i = 4; i > 1; i--)
{
Console.WriteLine(new string('*', i));
}
或使用Substring
删除每个循环的第一个字符。
string x = "****";
for (int i = 0; i < 4; i++)
{
Console.WriteLine(x);
x = x.Substring(1);
}
您不需要反转循环。只需从字符串中删除星星,而不是添加一些。
string x = "****";
for (int i = 0; i < 4; i++)
{
Console.WriteLine(x);
x = x.Substring(1); // Removes the first star by keeping the rest of the string
// starting at index 1. (Index is zero-based)
}
注意 x
的最后一个值将是一个空字符串 ""
;但是,永远不会打印此值。
您不必反转循环的原因是您从不在循环内使用循环计数器 i
。因此,它具有哪个值并不重要。只关心循环体执行了4次。
如果您不允许使用字符串函数,您可以嵌套第二个内部循环来打印每个星星。但是如果你反转循环会更好。
for (int numberOfStars = 4; numberOfStars >= 1; numberOfStars--) {
for (int i = 0; i < numberOfStars; i++) {
Console.Write("*"); // Note: Write, not WriteLine!
}
Console.WriteLine();
}
或者你可以每次都创建一个新字符串
for (int numberOfStars = 4; numberOfStars >= 1; numberOfStars--) {
string x = "";
for (int i = 0; i < numberOfStars; i++) {
x += "*";
}
Console.WriteLine(x);
}
我不确定你到底想做什么,但这里有一种反转字符串的方法:
string str = "Hello";
char[] charArray = str.ToCharArray();
Array.Reverse(charArray); //olleH
str = charArray.ToString();//If you want to convert charArray to (already reversed) string.
然后,反转后,就可以开始循环了,如上面的答案所示。
现在可以了
for (int i = 4; i > 0; i--)
{
for (int j = 1; j <= i; j++)
Console.Write("*");
Console.WriteLine();
}
static void Task()
{
string x = "*";
for (int i = 0; i < 4; i++)
{
Console.WriteLine(x);
x += "*";
}
}
它输出
*
**
***
****
他妈的只用“for”循环怎么反转? 特别是包含循环...
只要把它转过来,它从 4 开始下降到 1,打印那么多星星:
for (int i = 4; i > 1; i--)
{
Console.WriteLine(new string('*', i));
}
或使用Substring
删除每个循环的第一个字符。
string x = "****";
for (int i = 0; i < 4; i++)
{
Console.WriteLine(x);
x = x.Substring(1);
}
您不需要反转循环。只需从字符串中删除星星,而不是添加一些。
string x = "****";
for (int i = 0; i < 4; i++)
{
Console.WriteLine(x);
x = x.Substring(1); // Removes the first star by keeping the rest of the string
// starting at index 1. (Index is zero-based)
}
注意 x
的最后一个值将是一个空字符串 ""
;但是,永远不会打印此值。
您不必反转循环的原因是您从不在循环内使用循环计数器 i
。因此,它具有哪个值并不重要。只关心循环体执行了4次。
如果您不允许使用字符串函数,您可以嵌套第二个内部循环来打印每个星星。但是如果你反转循环会更好。
for (int numberOfStars = 4; numberOfStars >= 1; numberOfStars--) {
for (int i = 0; i < numberOfStars; i++) {
Console.Write("*"); // Note: Write, not WriteLine!
}
Console.WriteLine();
}
或者你可以每次都创建一个新字符串
for (int numberOfStars = 4; numberOfStars >= 1; numberOfStars--) {
string x = "";
for (int i = 0; i < numberOfStars; i++) {
x += "*";
}
Console.WriteLine(x);
}
我不确定你到底想做什么,但这里有一种反转字符串的方法:
string str = "Hello";
char[] charArray = str.ToCharArray();
Array.Reverse(charArray); //olleH
str = charArray.ToString();//If you want to convert charArray to (already reversed) string.
然后,反转后,就可以开始循环了,如上面的答案所示。
现在可以了
for (int i = 4; i > 0; i--)
{
for (int j = 1; j <= i; j++)
Console.Write("*");
Console.WriteLine();
}