c# - 用于创建包含多个空白字符的字符串的 ""的替代方法

标签 c# string spaces

我想知道在 C# 中是否有更面向对象的方式来创建空格。

字面意思是空间代码!

我目前有 tabs += new String(""); 我不禁觉得这有点让人想起使用 "" 而不是 String.Empty.

我可以使用什么来创建不是 "" 的空间?

最佳答案

你可以写

" "

代替

new String(' ')

这有帮助吗?


根据您的工作,您可能需要查看 StringBuilder.Append接受字符和“重复”计数的重载:

var tabs = new StringBuilder();
tabs.Append(' ', 8);

或进入字符串 constructor从一个“重复”计数的字符构造一个字符串:

var tabs = new string(' ', 8);

这是一个企业级的 OO 解决方案,可以满足您所有的空间生成需求:

public abstract class SpaceFactory
{
    public static readonly SpaceFactory Space = new SpaceFactoryImpl();

    public static readonly SpaceFactory ZeroWidth = new ZeroWidthFactoryImpl();

    protected SpaceFactory { }

    public abstract char GetSpace();

    public virtual string GetSpaces(int count)
    {
        return new string(this.GetSpace(), count);
    }

    private class SpaceFactoryImpl : SpaceFactory
    {
        public override char GetSpace()
        {
            return '\u0020';
        }
    }

    private class ZeroWidthFactoryImpl : SpaceFactory
    {
        public override char GetSpace()
        {
            return '\u200B';
        }
    }
}

关于c# - 用于创建包含多个空白字符的字符串的 ""的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1716230/

相关文章:

c# - 使用值更新特定的 sql 记录

c# - C api 到 C# GUI

c# - 一个用于 UserControl 和 Window 的 ViewModel 或单独的 ViewModel

java - 如何从循环外部访问在嵌套循环中声明或初始化的数组或变量?

jquery - 删除最近的空 sibling

cocoa - 防止应用程序在空间之间移动

c# - 在什么情况下我应该假设 Windows Form 是可见的?

java - 如何将字符串转换为 BigInteger?

clipboard - 删除剪贴板中文本字符串中的空格

mysql - 当字符串包含空格时,应用程序仍未更新数据库