在字符串之间添加空格的最佳方法是什么
myString = string.Concat("a"," ","b")
或
myString = string.Concat("a",Chr(9),"b")
我正在使用stringbuilder来构建XML文件并寻找有效的东西。
由于
编辑〜语言VB.NET
答案 0 :(得分:8)
使用XmlDocument类创建XML文件。你浪费时间从头开始创建一个字符串。
答案 1 :(得分:5)
String.Join是一个静态方法,可以使用分隔符(在本例中为“”)和一个字符串数组。
string sentence = String.Join(" ", new string[] { "The", "quick", "brown", "fox" });
答案 2 :(得分:4)
嗯,首先,chr(9)是一个制表符 - 你可能想用chr(32)来获取空格。
也就是说,第一个选项 string.Concat("a"," ","b")
是一个更具可读性的选项。我会集中精力让你的代码在功能上正确开始。优化应始终是最后一步,仅针对需要它的那些领域。换句话说,您需要一个基线来检查您的优化。
很多时候,你进行了优化,然后发现自己不得不改变代码,这意味着你的优化工作被浪费了。
答案 3 :(得分:1)
绝对不是Chr(9)。毕竟不是每个人都使用ascii。
答案 4 :(得分:1)
作为“传统”XMLDocument的替代方案,如果您使用的是.NET 3.5及更高版本,请查看LINQ中新的XDocument / XElement类。< / p>
这里有一个很好的教程:
http://www.hookedonlinq.com/Print.aspx?Page=LINQtoXML5MinuteOverview
答案 5 :(得分:1)
如果要连接已知数量的字符串,最好只使用+,因为编译器会将其转换为对string.Concat的调用。所以
s = a + " " + b
变为
s = string.Concat(a, " ", b)
但第一个更具可读性。虽然通常需要注意,但在循环中执行此操作时,StringBuilders通常更可取。
在“”上使用Chr(32)将没有快速区别,因为在这种情况下Chr(x)在编译时在VB.Net中被翻译(不知道它是否总是如此,但在我的机器上它做了所以你只是让它更难以阅读而没有好处。 Chr主要用于向后兼容,通常最适用于定义可打印范围之外的字符。
也就是说,使用其中一个框架库构建XML可能更好,除非它是一个非常小的片段。
答案 6 :(得分:1)
Dim TestString As String
' Returns a string with 10 spaces.
TestString = Space(10)
' Inserts 10 spaces between two strings.
TestString = "Hello" & Space(10) & "World"
答案 7 :(得分:0)
最简单的方法是使用聚合函数来组合元素。
string[] input = new string[]{"a", "b"};
var withSpaces = input.Aggregate( (x,y) => x + " " + );
答案 8 :(得分:0)
我没有看到问题中的代码示例中有哪个字符串构建器;但既然你说你正在使用一个;我会用:
sb.AppendFormat("{0} {1}", a, b);