Dar formato a una cadena con espacios fijos en C#

Syed Hassan Sabeeh Kazmi 12 octubre 2023
  1. Utilice el método String.Format para formatear una cadena con espacios fijos en C#
  2. Use $ – interpolación de cadenas para formatear una cadena con espacios fijos en C#
  3. Utilice String.PadLeft y String.PadRight para formatear una cadena con espacios fijos en C#
Dar formato a una cadena con espacios fijos en C#

En este tutorial, aprenderá cómo C# le brinda la libertad de formatear una cadena con espacio fijo usando diferentes métodos. El entorno .NET presenta métodos estáticos como String.Format para alinear cadenas con espacios fijos.

Utilice el método String.Format para formatear una cadena con espacios fijos en C#

Este método convierte el valor de objetos, variables o expresiones en cadenas y las inserta en otra cadena según los formatos especificados. El String.Format comienza con una cadena de formato seguida de uno o más objetos.

La sintaxis {int, int} representa una cadena de inserción y puede definir el ancho de la cadena insertada en la cadena de resultado. Por ejemplo, la sintaxis {0, 6} representa una cadena de 6 caracteres.

En C#, las cadenas están alineadas a la derecha de manera predeterminada dentro de su campo y frente al ancho del campo con un signo negativo {0, -6} para alinearlas a la izquierda. Los corchetes de este método denotan elementos opcionales, y una cadena de formato tiene la sintaxis {index[,alignment][:formatString]}.

El índice de las cadenas de formato corresponde a un objeto que pertenece a la lista de argumentos del método, y este índice se puede procesar secuencialmente desde el principio de la cadena.

Código:

using System;

public class formatString {
  public static void Main(string[] args) {
    string prtTxtAlg = "I like burgundy.";

    string txtFmtRight = String.Format("{0,30}", prtTxtAlg);

    string txtFmtCenter = String.Format(
        "{0,-30}",
        String.Format("{0," + ((30 + prtTxtAlg.Length) / 2).ToString() + "}", prtTxtAlg));

    string txtFmtLeft = String.Format("{0,-30}", prtTxtAlg);

    Console.WriteLine(txtFmtRight);
    Console.WriteLine(txtFmtCenter);
    Console.WriteLine(txtFmtLeft);
  }
}

Producción :

           I like burgundy.
     I like burgundy.
I like burgundy.

Use $ – interpolación de cadenas para formatear una cadena con espacios fijos en C#

El $ se identifica como una cadena interpolada que contiene expresiones de interpolación. Cuando el $ - cadena se resuelve en una cadena de resultado, obliga a que los elementos con expresiones de interpolación sean reemplazados por las representaciones de cadena de los resultados de la expresión.

La sintaxis {<interpolationExpression>[,<alignment>][:<formatString>]} representa una cadena y su estructura representa su expresión de interpolación. Hay un elemento principal de la $ - interpolation string que es <interpolationExpression> y dos secundarios y opcionales que están entre corchetes son; <alignment> y <formatString>.

La interpolationExpression produce un resultado a formatear, la alignment representa un valor positivo o negativo para alinear la cadena a la derecha o a la izquierda, y la formatString es compatible con el tipo de resultado de la expresión.

En general, se requiere una llamada a un método que admita el formato compuesto, pero puede usar cualquier cadena con la ayuda de este método sin necesidad de compatibilidad con ningún método para el formato compuesto. C# facilita la lectura y la codificación de las cadenas interpoladas al introducir la expresión en la expresión interpolada para insertarla en una cadena en lugar de en una lista de argumentos.

Además de la mayor comprensibilidad y rendimiento, el método $ - interpolación de cadenas puede reemplazar no solo las llamadas a métodos de formato compuesto, sino que también puede usarse en operaciones de concatenación de cadenas. Las operaciones de concatenación que admite pueden producir código C# más preciso y legible.

Código:

using System;

public class formatString {
  public static void Main(string[] args) {
    string value = "I like burgundy.";

    string txtRight = $"{value,25}";
    string txtCenter = $"{value,20}";
    string txtLeft = $"{value,-10}";

    Console.WriteLine(txtRight);
    Console.WriteLine(txtCenter);
    Console.WriteLine(txtLeft);
  }
}

Producción :

         I like burgundy.
    I like burgundy.
I like burgundy.

Utilice String.PadLeft y String.PadRight para formatear una cadena con espacios fijos en C#

El método String.PadLeft rellena una cadena con caracteres iniciales hasta una longitud total especificada. El método String.PadRight rellena una cadena con caracteres finales hasta una longitud total especificada.

Puede tomar el concepto de estos dos métodos String y crear un nuevo método String.PadCenter que encontrará en el siguiente código C#. El carácter de relleno en los métodos String puede ser un espacio o un carácter específico, y la cadena resultante parece estar alineada a la derecha o a la izquierda.

En C#, PadLeft() y PadRight() pueden alinear a la derecha oa la izquierda la cadena rellenándolas con espacios o caracteres específicos a la izquierda o a la derecha para una longitud total especificada.

Código:

using System;

public class formatString {
  public static void Main(string[] args) {
    string txt = "I like burgundy.";

    Console.WriteLine(txt.PadLeft(20, ' '));

    // to pad_center the string using custom C# code
    Console.WriteLine(txtCenter.PadCenter(txt, 20, ' '));

    Console.WriteLine(txt.PadRight(20, ' '));
  }
}

// custom code to create `PadCenter` String method in C#
public static class txtCenter {
  public static string PadCenter(this string txt, int width, char symb) {
    if (txt == null || width <= txt.Length)
      return txt;

    int padding = width - txt.Length;
    return txt.PadLeft(txt.Length + padding / 2, symb).PadRight(width, symb);
  }
}

Producción :

    I like burgundy.
  I like burgundy.
I like burgundy.

En este tutorial, ha aprendido todo lo que hay que saber sobre cómo formatear una cadena con espacios fijos o relleno en C#.

Syed Hassan Sabeeh Kazmi avatar Syed Hassan Sabeeh Kazmi avatar

Hassan is a Software Engineer with a well-developed set of programming skills. He uses his knowledge and writing capabilities to produce interesting-to-read technical articles.

GitHub

Artículo relacionado - Csharp String