你如何把一个字符串从一个特定的位置开始?
How do you put a string starting from a specific position?
我一直在尝试寻找一种快捷方式,将长字符串文本放置在特定坐标中,而无需多次使用 Console.SetCursorPosition
和 Console.WriteLine
。我计划使用快捷方式,尤其是在定位 ASCII 文本时。
我试过 Console.SetCursorPosition
然后 @
将长字符串文本放在一起,结果发现只有第一行受到 Console.SetCursorPosition
.[=18 的影响=]
Console.SetCursorPosition(50, 1);
Console.WriteLine("Hello");
Console.SetCursorPosition(50, 2);
Console.WriteLine("World");
Console.ReadKey();
我希望输出以某种方式在中间显示 Hello
,在其下方显示 World
。
如果你将它包装在一个函数中,它应该可以工作:
public static void WriteAtPosition(int x, int y, stfing text)
{
Console.SetCursorPosition(x,y);
Console.Write(text);
}
您可以编写一个函数来执行此操作。例如:
static void Print(int left, int top, params string[] lines)
{
foreach (string line in lines)
{
Console.SetCursorPosition(left, top);
Console.WriteLine(line);
top++;
}
}
并这样称呼它:
Print(50, 1, "Hello", "World");
或类似这样:
string[] lines = { "Hello", "World" };
Print(50, 1, lines);
如果文本由空格分隔的单词组成,而您想在每一行放置一个单词,那么您可以在函数内部以空格分隔文本。这样你就可以传递一行文本。
static void Print(int left, int top, params string[] lines)
{
foreach (string line in lines)
{
string[] words = line.Trim().Split(new char[] { ' ' });
foreach (string word in words)
{
Console.SetCursorPosition(left, top);
Console.WriteLine(word);
top++;
}
}
}
并这样称呼它:
Print(50, 1, "Hello World");
我一直在尝试寻找一种快捷方式,将长字符串文本放置在特定坐标中,而无需多次使用 Console.SetCursorPosition
和 Console.WriteLine
。我计划使用快捷方式,尤其是在定位 ASCII 文本时。
我试过 Console.SetCursorPosition
然后 @
将长字符串文本放在一起,结果发现只有第一行受到 Console.SetCursorPosition
.[=18 的影响=]
Console.SetCursorPosition(50, 1);
Console.WriteLine("Hello");
Console.SetCursorPosition(50, 2);
Console.WriteLine("World");
Console.ReadKey();
我希望输出以某种方式在中间显示 Hello
,在其下方显示 World
。
如果你将它包装在一个函数中,它应该可以工作:
public static void WriteAtPosition(int x, int y, stfing text)
{
Console.SetCursorPosition(x,y);
Console.Write(text);
}
您可以编写一个函数来执行此操作。例如:
static void Print(int left, int top, params string[] lines)
{
foreach (string line in lines)
{
Console.SetCursorPosition(left, top);
Console.WriteLine(line);
top++;
}
}
并这样称呼它:
Print(50, 1, "Hello", "World");
或类似这样:
string[] lines = { "Hello", "World" };
Print(50, 1, lines);
如果文本由空格分隔的单词组成,而您想在每一行放置一个单词,那么您可以在函数内部以空格分隔文本。这样你就可以传递一行文本。
static void Print(int left, int top, params string[] lines)
{
foreach (string line in lines)
{
string[] words = line.Trim().Split(new char[] { ' ' });
foreach (string word in words)
{
Console.SetCursorPosition(left, top);
Console.WriteLine(word);
top++;
}
}
}
并这样称呼它:
Print(50, 1, "Hello World");