当前位置: 首页 > 编程语言 > C#

Alternativesforcreatingstringscontainingmultiplewhitespacecharacters分享

时间:2023-04-11 00:10:12 C#

创建包含多个空白字符的字符串的Alternatives我想知道C#中是否有更多OO方式创建空格。字面上的空间码!我目前有tabs+=newString("");我不禁认为这有点让人想起使用“”而不是String.Empty。我可以用什么来创建不是“”的空间?你能写""而不是newString('')这会有帮助吗?根据您的操作,您可能需要查看接受字符和“重复”计数的StringBuilder.Append重载:vartabs=newStringBuilder();tabs.Append('',8);或从char构造函数的“重复”计数构造一个字符串:vartabs=newstring('',8);这是满足您所有空间生成需求的企业级OO解决方案:publicstaticreadonlySpaceFactoryZeroWidth=newZeroWidthFactoryImpl();protectedSpaceFactory{}publicabstractcharGetSpace();publicvirtualstringGetSpaces(intcount){returnnewstring(this.GetSpace(),count);SpaceFactory{publicoverridecharGetSpace(){return'u0020';}}privateclassZeroWidthFactoryImpl:SpaceFactory{publicoverridecharGetSpace(){return'u200B';现在你已经在评论中澄清了:在我的实际代码中,我正在做newString(",numberOfSpaces),所以我可能还需要使用newString部分。...到目前为止的其他答案实际上是无用的:(你可以写:constcharSpace='';然后使用newstring(Space,numberOfSpaces)但我看不到任何好处newstring('',numberOfSpaces)如果空格会改变,那么你可以这样做:更好。String.Empty和newString('')传达与“”和“”相同的东西,它们只是需要更多的字符来完成。试图让它“更面向对象”只是增加了没有任何好处。面向对象本身并不是目的。根据它在您的代码中的普遍程度,StringBuilder方式可能会更好。StringBuildertabs=newStringBuilder();...tabs.Append("");您还可以混合常量...StringBuildertabs=newStringBuilder();conststringSPACE="";...tabs.Append(SPACE);扩展一个字符串,提供增加空格的方法publicstaticstringAddSpace(thisStringtext,intsize){returntext+newstring('',size)}本身就不好。更“面向对象”的方法是找到一种更简单的方法来解决您的大型业务问题。例如,您有一个Thefactthatthevariable告诉我您正在尝试推出自己的列对齐代码。String.Format直接支持,例如//名称和状态左对齐,金额右对齐(格式化为货币)。writer.WriteLine("姓名状态金额");writer.WriteLine("------------------------------------------");foreach(variteminitems){writer.WriteLine(string.Format("{0,-20}{1,-10}{2,10:C}",item.Name,item.Status,item.Amount));}如果语言允许,你可以给字符串类型的空间添加扩展属性,比如:publicstaticclassStringExt{publicstaticcharSpace(thisStrings){get{return'';}}}但这是不可能的。我认为如果它是可本地化的东西,最好在属性中保留空格,但我认为空格在所有语言中都是通用的。我认为您正在以面向对象的方式进行远程操作……一个简单的空间添加不需要整个班级。tabs+=newString('');或制表符+=“”;很好。我想你可以用“t”给你一个标签。这可能会使空间更清晰。StringBuilder.Insert和StringBuilder.Append允许您创建任意数量的空格,例如sb.Insert(0,"",20)将在sb(StringBuilder)对象的开头插入20个空格。您可以创建类扩展。publicstaticclassStringExtensions{publicstaticstringGetSpace(thisString){return"";你可以这样称呼它。以上就是《C#学习教程:创建包含多个空白字符的字符串的替代方法》的全部内容。);本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: