Quiero hacer lo siguiente en C # (proveniente de un fondo de Python):
strVar = "stack"
mystr = "This is %soverflow" % (strVar)
¿Cómo reemplazo el token dentro de la cadena con el valor fuera de ella?
Quiero hacer lo siguiente en C # (proveniente de un fondo de Python):
strVar = "stack"
mystr = "This is %soverflow" % (strVar)
¿Cómo reemplazo el token dentro de la cadena con el valor fuera de ella?
string mystr = string.Format("This is {0}overflow", strVar);
Y también puede usar parámetros con nombre en lugar de índices.
Esto se ha agregado a partir de C # 6.0 (Visual Studio 2015+).
Ejemplo:
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!"
Este es azúcar sintáctico para:
var formattedStr = String.Format("Hello planet {0}, my name is {1}!", planetName, myName);
Recursos adicionales:
$("This feature is {GetDescription(FEATURE_AMAZING))}");
Puede usar
string.Format
para colocar valores en cadenas:Una alternativa es usar el operador de concatenación de C #:
Si está haciendo muchas concatenaciones, use la
StringBuilder
clase que es más eficiente:fuente
C # 6.0
fuente
Si actualmente usa Visual Studio 2015 con C # 6.0, intente lo siguiente:
esa característica se llama interpolación de cadenas.
fuente
No hay operador para eso. Necesitas usar
string.Format
.Desafortunadamente,
string.Format
es un método estático, por lo que no puede simplemente escribir"This is {0}soverflow".Format(strVar)
. Algunas personas han definido un método de extensión que permite esta sintaxis.fuente
Utilizar
string.Format
:fuente
Deberías estar usando
String.Format()
. La sintaxis es un poco diferente, en su lugar se utilizan marcadores de posición numéricos.Ejemplo:
Eche un vistazo a http://msdn.microsoft.com/en-us/library/system.string.format.aspx para obtener más detalles.
fuente
Tienes 2 opciones. Puede usar String.Format o puede usar el operador de concatenación.
O
fuente
String.Format()
usa StringBuilder. StringBuilder suele ser más eficiente cuando se concatenan muchas cadenas, pero el operador de concatenación es perfecto para una sola.String.Format()
es útil cuando es necesario aplicar formato a la salida, por ejemplo, para agregar relleno o ceros iniciales a valores numéricos. Entonces, usarloString.Format()
en un bucle potencialmente instanciará muchos StringBuilders. En esa situación, es mejor usar un solo StringBuilder declarado fuera del ciclo yAppendFormat()
dentro del ciclo.Hay una forma más de implementar marcadores de posición con cadenas. Reemplazar, extrañamente ayuda en ciertas situaciones:
fuente
Puedes usar la siguiente forma
El carácter especial $ identifica una cadena literal como una cadena interpolada. p.ej
Una cadena interpolada es un literal de cadena que puede contener expresiones interpoladas. Cuando una cadena interpolada se resuelve en una cadena de resultado, los elementos con expresiones interpoladas se reemplazan por las representaciones de cadena de los resultados de la expresión.
Utilice String.Format si necesita insertar el valor de un objeto, variable o expresión en otra cadena.
fuente
Utilizar:
fuente
Puede lograr esto con Expansive: https://github.com/anderly/Expansive
fuente