¿Cómo ignorar los primeros 10 caracteres de una cadena?
Entrada:
str = "hello world!";
Salida:
d!
¿Cómo ignorar los primeros 10 caracteres de una cadena?
Entrada:
str = "hello world!";
Salida:
d!
Respuestas:
str = "hello world!";
str.Substring(10, str.Length-10)
deberá realizar las comprobaciones de longitud, de lo contrario, esto arrojaría un error
str = str.Remove(0,10);
Elimina los primeros 10 caracteres
o
str = str.Substring(10);
Crea una subcadena que comienza en el undécimo carácter hasta el final de la cadena.
Para sus propósitos, deberían funcionar de manera idéntica.
La subcadena es probablemente lo que desea, como señalaron otros. Pero solo para agregar otra opción a la mezcla ...
string result = string.Join(string.Empty, str.Skip(10));
¡Ni siquiera necesitas verificar la longitud de esto! :) Si tiene menos de 10 caracteres, obtendrá una cadena vacía.
Substring
tiene dos métodos de sobrecarga:
public string Substring(int startIndex);//The substring starts at a specified character position and continues to the end of the string.
public string Substring(int startIndex, int length);//The substring starts at a specified character position and taking length no of character from the startIndex.
Entonces, para este escenario, puede usar el primer método como este a continuación:
var str = "hello world!";
str = str.Substring(10);
Aquí la salida es:
d!
Si puede aplicar la codificación defensiva comprobando su longitud.
Puede eliminar Char usando debajo de la línea,
: - Primero verifique que la cadena tenga suficientes caracteres para eliminar , como
string temp="Hello Stack overflow";
if(temp.Length>10)
{
string textIWant = temp.Remove(0, 10);
}
Utilice el método de subcadena.
string s = "hello world";
s=s.Substring(10, s.Length-10);
Puede utilizar el método Substring método que toma un solo parámetro, que es el índice para comenzar.
En mi código a continuación, trato el caso en el que la longitud es menor que el índice de inicio deseado y cuando la longitud es cero.
string s = "hello world!";
s = s.Substring(Math.Max(0, Math.Min(10, s.Length - 1)));
Por:
var str = "hello world!";
Para obtener la cadena resultante sin los primeros 10 caracteres y una cadena vacía si la cadena tiene una longitud menor o igual a 10, puede usar:
var result = str.Length <= 10 ? "" : str.Substring(10);
o
var result = str.Length <= 10 ? "" : str.Remove(0, 10);
Se prefiere la primera variante ya que solo necesita un parámetro de método.
No es necesario especificar la longitud en el Substring
método. Por lo tanto:
string s = hello world;
string p = s.Substring(3);
p
estarán:
"lo mundo".
La única excepción a la que debe atender es ArgumentOutOfRangeException
si
startIndex
es menor que cero o mayor que la longitud de esta instancia.
A partir de C # 8, simplemente puede usar Range Operator. Es la forma más eficiente y mejor de manejar estos casos.
string AnString = "Hello World!";
AnString = AnString[10..];
C# 8
no es compatible con la orientación .NET Framework
.
Llamar SubString()
asigna una nueva cadena. Para un rendimiento óptimo, debe evitar esa asignación adicional. Comenzando por C# 7.2
, puede aprovechar el patrón Span .
Al apuntar .NET Framework
, incluya el paquete System.Memory NuGet
. Para .NET Core
proyectos, esto funciona de manera inmediata.
static void Main(string[] args)
{
var str = "hello world!";
var span = str.AsSpan(10); // No allocation!
// Outputs: d!
foreach (var c in span)
{
Console.Write(c);
}
Console.WriteLine();
}