Dodawanie spacji między strunami

głosy
2

Jaki jest najlepszy sposób na dodanie spacji między strunami

myString = string.Concat(a, ,b)

lub

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

Używam StringBuilder zbudować plik XML i szukasz czegoś skutecznego.

Dzięki

Edit ~ Język VB.NET

Utwórz 11/10/2008 o 23:52
źródło użytkownik
W innych językach...                            


9 odpowiedzi

głosy
8

Tworzenie pliku XML z klasy XMLDocument. Twój tracić czas tworząc ciąg od podstaw.

Odpowiedział 11/10/2008 o 23:55
źródło użytkownik

głosy
5

String.join jest metodą statyczną, który może trwać do separatora (w tym przypadku, "„) oraz szereg łańcuchów.

string sentence = String.Join(" ", new string[] { "The", "quick", "brown", "fox" });
Odpowiedział 11/10/2008 o 23:57
źródło użytkownik

głosy
1

Zdecydowanie nie Chr (9). Nie każdy używa ASCII, mimo wszystko.

Odpowiedział 11/10/2008 o 23:57
źródło użytkownik

głosy
1

Jako alternatywę do „tranditional” XMLDocument , jeśli używasz .NET 3.5 iw górę, warto zapoznać się z nowymi XDocument / Xelement klas LINQ.

Dobry poradnik jest tutaj:

http://www.hookedonlinq.com/Print.aspx?Page=LINQtoXML5MinuteOverview

Odpowiedział 12/10/2008 o 00:12
źródło użytkownik

głosy
4

Cóż, na początek, chr (9) to znak tabulatora - czy chcesz użyć Chr (32), aby dostać miejsce.

Powiedział, że pierwsza opcja, string.Concat("a"," ","b")jest bardziej czytelny jeden. Chciałbym być skoncentrowanie się na uzyskanie kodu funkcjonalnie poprawne zacząć. Optymalizacja powinna być zawsze ostatnim krokiem i kierowane tylko do tych obszarów, które jej potrzebują. Innymi słowy, trzeba mieć punkt odniesienia, by sprawdzić optymalizacje przeciw.

Zbyt wiele razy, optymalizację następnie znaleźć się konieczności zmiany kodu tak, co oznacza, że ​​twój wysiłek optymalizacji został zmarnowany.

Odpowiedział 12/10/2008 o 00:25
źródło użytkownik

głosy
0

Najprostszym sposobem jest użycie funkcji zagregowanego połączyć elementy.

string[] input = new string[]{"a", "b"};
var withSpaces = input.Aggregate( (x,y) => x + " " + );
Odpowiedział 12/10/2008 o 01:08
źródło użytkownik

głosy
0

Nie widzę, gdzie na przykład kodu w pytaniu jest StringBuilder; ale skoro mówisz, że są za pomocą jednego; Użyłbym:

sb.AppendFormat("{0} {1}", a, b);
Odpowiedział 12/10/2008 o 01:53
źródło użytkownik

głosy
1

Jeśli złączenie znaną liczbę strun to chyba lepiej po prostu użyć + jako kompilator tłumaczy je na rozmowy i tak string.Concat. Więc

s = a + " " + b

staje się

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

Ale pierwszy jest dużo bardziej czytelny. Choć zwykle zastrzeżeniem, StringBuilders są na ogół korzystne, gdy robi to w pętli.

Korzystanie Chr (32) na „” nie zrobi różnicy prędkości mądry jak w tym przypadku Chr (x) jest tłumaczone w czasie kompilacji w VB.NET (nie wiem, czy to zawsze tak jest, ale na moim komputerze to zrobił), więc „re po prostu czyni go bardziej trudne do odczytania bez benifit. Chr jest głównie tam dla wstecznej kompatybilności i jest generalnie najlepiej stosować do zdefiniowania znaków spoza zakresu drukowania.

To powiedziawszy, to chyba lepiej użyć jednego z biblioteki ramowej zbudować XML, chyba że jest to bardzo mały fragment.

Odpowiedział 12/10/2008 o 10:25
źródło użytkownik

głosy
0
 Dim TestString As String
' Returns a string with 10 spaces.
TestString = Space(10)
' Inserts 10 spaces between two strings.
TestString = "Hello" & Space(10) & "World"
Odpowiedział 22/05/2013 o 05:02
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more