Como ignorar os primeiros 10 caracteres de uma string?
Entrada:
str = "hello world!";
Resultado:
d!
Como ignorar os primeiros 10 caracteres de uma string?
Entrada:
str = "hello world!";
Resultado:
d!
Respostas:
str = "hello world!";
str.Substring(10, str.Length-10)
você precisará realizar as verificações de comprimento; caso contrário, isso geraria um erro
str = str.Remove(0,10);
Remove os primeiros 10 caracteres
ou
str = str.Substring(10);
Cria uma substring começando no 11º caractere até o final da string.
Para seus objetivos, eles devem funcionar de forma idêntica.
O substring é provavelmente o que você deseja, como outros apontaram. Mas só para adicionar outra opção ao mix ...
string result = string.Join(string.Empty, str.Skip(10));
Você nem precisa verificar o comprimento disso! :) Se for menor que 10 caracteres, você obtém uma string vazia.
Substring
tem dois 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.
Portanto, para este cenário, você pode usar o primeiro método como este abaixo:
var str = "hello world!";
str = str.Substring(10);
Aqui, o resultado é:
d!
Se você pode aplicar a codificação defensiva, verificando seu comprimento.
Você pode remover o caractere usando a linha abaixo,
: - Primeiro verifique se a String tem caracteres suficientes para remover , como
string temp="Hello Stack overflow";
if(temp.Length>10)
{
string textIWant = temp.Remove(0, 10);
}
Use o método substring.
string s = "hello world";
s=s.Substring(10, s.Length-10);
Você pode usar o método Substring , que usa um único parâmetro, que é o índice a partir do qual começar.
No meu código abaixo, eu lido com o caso em que o comprimento é menor do que o índice inicial desejado e quando o comprimento é zero.
string s = "hello world!";
s = s.Substring(Math.Max(0, Math.Min(10, s.Length - 1)));
Para:
var str = "hello world!";
Para obter a string resultante sem os primeiros 10 caracteres e uma string vazia se a string for menor ou igual a 10, você pode usar:
var result = str.Length <= 10 ? "" : str.Substring(10);
ou
var result = str.Length <= 10 ? "" : str.Remove(0, 10);
A primeira variante é preferida, pois precisa de apenas um parâmetro de método.
Não há necessidade de especificar o comprimento do Substring
método. Portanto:
string s = hello world;
string p = s.Substring(3);
p
será:
"lo mundo".
A única exceção que você precisa atender é ArgumentOutOfRangeException
se
startIndex
for menor que zero ou maior que o comprimento desta instância.
A partir do C # 8, você simplesmente pode usar o Range Operator. É a maneira mais eficiente e melhor de lidar com esses casos.
string AnString = "Hello World!";
AnString = AnString[10..];
C# 8
não é compatível com a segmentação .NET Framework
.
Chamar SubString()
aloca uma nova string. Para obter o desempenho ideal, você deve evitar essa alocação extra. Começando com, C# 7.2
você pode tirar vantagem do padrão Span .
Ao direcionar .NET Framework
, inclua o pacote System.Memory NuGet
. Para .NET Core
projetos, isso funciona fora da caixa.
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();
}