C# 简单美化控制台输出的文本
该方法通过遍历出每个字符的长度来算出应该输出多少个横杠, 因为左右两边的竖杠,起始值为2。
最开始想用Encoding.Default.GetByteCount()直接的算出一共的字符长度,发现中文字符经过编译后不一定都是2个字符,所以要加个判断分别输出。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 继承作业02
//美化输出文本的界面 : 加上方框
{
class Tool
{
static public void printIsSqr(String str)
{
int total = 2;
for (int i = 0; i < str.Length; i++)
{
if (Encoding.Default.GetByteCount(str[i].ToString())==1)
{
total += 1;
}
else
{
total += 2;
}
}
for (int i = 0; i < total; i++)
{
Console.Write("-");
}
Console.WriteLine();
Console.Write("|");
Console.Write(str);
Console.WriteLine("|");
for (int i = 0; i < total; i++)
{
Console.Write("-");
}
Console.WriteLine();
}
}
}
用主方法测试一下效果:
class Program
{
static void Main(string[] args)
{
string str1 = string.Format("Hello World!");
Tool.printIsSqr(str1);
string str2 = string.Format("C#:简单美化控制台输出的文本");
Tool.printIsSqr(str2);
Console.ReadKey();
}
}
效果如下: