Chcę wykonać następujące czynności w języku C # (pochodzącym z tła Pythona):
strVar = "stack"
mystr = "This is %soverflow" % (strVar)
Jak zamienić token w ciągu na wartość znajdującą się poza nim?
Chcę wykonać następujące czynności w języku C # (pochodzącym z tła Pythona):
strVar = "stack"
mystr = "This is %soverflow" % (strVar)
Jak zamienić token w ciągu na wartość znajdującą się poza nim?
string mystr = string.Format("This is {0}overflow", strVar);
Możesz także użyć nazwanych parametrów zamiast indeksów.
To zostało dodane w C # 6,0 (Visual Studio 2015+).
Przykład:
var planetName = "Bob";
var myName = "Ford";
var formattedStr = $"Hello planet {planetName}, my name is {myName}!";
// formattedStr should be "Hello planet Bob, my name is Ford!"
To jest cukier syntaktyczny do:
var formattedStr = String.Format("Hello planet {0}, my name is {1}!", planetName, myName);
Dodatkowe zasoby:
$("This feature is {GetDescription(FEATURE_AMAZING))}");
Możesz użyć,
string.Format
aby upuścić wartości w ciągach:Alternatywą jest użycie operatora konkatenacji C #:
Jeśli wykonujesz dużo konkatenacji, użyj
StringBuilder
bardziej wydajnej klasy:źródło
C # 6.0
źródło
Jeśli obecnie używasz programu Visual Studio 2015 z C # 6.0, spróbuj wykonać następujące czynności:
ta funkcja nazywa się interpolacją ciągów.
źródło
Nie ma do tego operatora. Musisz użyć
string.Format
.Niestety
string.Format
jest to metoda statyczna, więc nie można po prostu pisać"This is {0}soverflow".Format(strVar)
. Niektórzy ludzie zdefiniowali metodę rozszerzenia, która pozwala na taką składnię.źródło
Zastosowanie
string.Format
:źródło
Powinieneś używać
String.Format()
. Składnia jest nieco inna, zamiast tego używane są liczbowe symbole zastępcze.Przykład:
Więcej informacji można znaleźć pod adresem http://msdn.microsoft.com/en-us/library/system.string.format.aspx .
źródło
Masz 2 opcje. Możesz użyć String.Format lub możesz użyć operatora konkatenacji.
LUB
źródło
String.Format()
używa StringBuilder. StringBuilder jest zwykle bardziej wydajny podczas konkatenacji wielu ciągów, ale operator konkatenacji jest idealny do jednorazowych.String.Format()
przydaje się, gdy na wyjściu trzeba zastosować formatowanie, np. aby dodać dopełnienie lub zera wiodące do wartości liczbowych. Tak więc użycieString.Format()
w pętli potencjalnie spowoduje utworzenie wielu obiektów StringBuilders. W takiej sytuacji lepiej jest użyć pojedynczego StringBuildera zadeklarowanego na zewnątrz pętli iAppendFormat()
wewnątrz pętli.Jest jeszcze jeden sposób na zaimplementowanie symboli zastępczych za pomocą ciągu znaków. Zamień, co dziwnie pomaga w niektórych sytuacjach:
źródło
Możesz skorzystać z następującego sposobu
Znak specjalny $ identyfikuje literał ciągu jako łańcuch interpolowany. na przykład
Ciąg interpolowany to literał ciągu, który może zawierać wyrażenia interpolowane. Gdy interpolowany ciąg jest tłumaczony na ciąg wynikowy, elementy z interpolowanymi wyrażeniami są zastępowane ciągami reprezentującymi wyniki wyrażenia.
Użyj String.Format, jeśli chcesz wstawić wartość obiektu, zmiennej lub wyrażenia do innego ciągu
źródło
Posługiwać się:
źródło
Możesz to osiągnąć dzięki Expansive: https://github.com/anderly/Expansive
źródło