在字符串之间添加空格

时间:2008-10-12 00:52:18

标签: .net xml vb.net string

在字符串之间添加空格的最佳方法是什么

myString = string.Concat("a"," ","b")

myString = string.Concat("a",Chr(9),"b")

我正在使用stringbuilder来构建XML文件并寻找有效的东西。

由于

编辑〜语言VB.NET

9 个答案:

答案 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);