Eu li esta pergunta para obter o primeiro caractere da string. Existe uma maneira de obter o primeiro número n de caracteres de uma seqüência de caracteres em c #?
Eu li esta pergunta para obter o primeiro caractere da string. Existe uma maneira de obter o primeiro número n de caracteres de uma seqüência de caracteres em c #?
Respostas:
Você pode usar Enumerable .
char[] array = yourStringVariable.Take(5).ToArray();
Ou você pode usar String.Substring .
string str = yourStringVariable.Substring(0,5);
Lembre-se de que isso String.Substring
poderia gerar uma exceção no caso de um comprimento de string menor que os caracteres necessários.
Se você deseja obter o resultado de volta na string, pode usar:
Usando String Constructor e LINQ Take
string firstFivChar = new string(yourStringVariable.Take(5).ToArray());
A vantagem com a abordagem não está verificando o comprimento antes da mão.
String.Substring
com verificação de errogostar:
string firstFivCharWithSubString =
!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5
? yourStringVariable.Substring(0, 5)
: yourStringVariable;
IsNullOrWhiteSpace
está errado aqui. Considere uma string com 10 espaços em branco - seu código retornará todos os 10. Use IsNullOrEmpty
. (Não é bom para combinar IsNullOrWhiteSpace
com qualquer outro teste; Em vez de teste para nulo + vazio, então Trim
se isso for especificado comportamento, em seguida, fazer o que testes / operações são necessárias.)
Você pode usar Substring (int startIndex, int length)
string result = str.Substring(0,5);
A substring inicia em uma posição de caractere especificada e tem um comprimento especificado. Este método não modifica o valor da instância atual. Em vez disso, ele retorna uma nova seqüência de caracteres com caracteres de comprimento iniciando na posição startIndex na seqüência atual, MSDN
E se a cadeia de origem tiver menos de cinco caracteres? Você receberá uma exceção usando o método acima. Podemos colocar a condição para verificar se o número de caracteres na string é superior a 5 e, em seguida, obter os cinco primeiros através da Substring. Nota: Eu atribuí a string de origem à variável firstFiveChar. O firstFiveChar não muda se os caracteres tiverem menos de 5, portanto, outra parte não é necessária.
string firstFiveChar = str;
If(!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5)
firstFiveChar = yourStringVariable.Substring(0, 5);
Ninguém mencionou como fazer verificações adequadas ao usar Substring()
, então eu queria contribuir com isso.
Se você não quiser usar Linq
e seguir adiante Substring()
, certifique-se de que sua string seja maior que o segundo parâmetro (comprimento) deSubstring()
função.
Digamos que você precise dos 5 primeiros caracteres. Você deve obtê-los com a verificação adequada, assim:
string title = "love" // 15 characters
var firstFiveChars = title.Length <= 5 ? title : title.Substring(0, 5);
// firstFiveChars: "love" (4 characters)
Sem essa verificação, Substring()
função lançaria uma exceção porque iteraria através de letras que não estão lá.
Eu acho que você entendeu a ideia ...
O problema .Substring(,)
é que você precisa ter certeza de que a sequência fornecida tenha pelo menos o comprimento do número solicitado de caracteres, caso contrário, uma ArgumentOutOfRangeException
será lançada.
Solução 1 (usando 'Substring'):
var firstFive = stringValue != null ?
stringValue.Substring(0, stringValue.Length >= 5 ? 5 : stringValue.Length) :
null;
A desvantagem de usar .Substring(
é que você precisará verificar o comprimento da string especificada.
Solução 2 (usando 'Take'):
var firstFive = stringValue != null ?
string.Join("", stringValue.Take(5)) :
null;
Usar 'Take' impedirá que você precise verificar o comprimento da string especificada.
Use a função PadRight para evitar que a string seja muito curta, pegue o que você precisa e apare os espaços do final em uma única instrução.
strSomeString = strSomeString.PadRight(50).Substring(0,50).TrimEnd();
Não sei por que alguém mencionou isso. Mas é a maneira mais curta e simples de conseguir isso.
string str = yourString.Remove(n);
n
- número de caracteres que você precisa
Exemplo
var zz = "7814148471";
Console.WriteLine(zz.Remove(5));
//result - 78141
Anexe cinco caracteres de espaço em branco, depois corte os cinco primeiros e apare o resultado. O número de espaços anexados deve corresponder ao número que você está cortando. Certifique-se de incluir os parênteses antes .Substring(0,X)
ou não anexará nada.
string str = (yourStringVariable + " ").Substring(0,5).Trim();
Com esta técnica, você não precisará se preocupar com o ArgumentOutOfRangeException
mencionado em outras respostas.
string str = "GoodMorning"
string strModified = str.Substring(0,5);
Apenas um aviso, há uma nova maneira de fazer isso no C # 8.0: operadores de intervalo
Ou como eu gosto de chamá-los, fatias de pandas.
À moda antiga:
string newString = oldstring.Substring(0, 5);
Nova maneira:
string newString = oldstring[..5];
Que, à primeira vista, parece uma troca muito ruim de legibilidade para código mais curto, mas o novo recurso oferece
coisas legais como esta:
var fatia1 = lista [2 .. ^ 3]; // lista [Range.Create (2, Index.CreateFromEnd (3))]
var fatia2 = lista [.. ^ 3]; // lista [Range.ToEnd (Index.CreateFromEnd (3))]
var fatia3 = lista [2 ..]; // lista [Range.FromStart (2)]
var fatia4 = lista [..]; // lista [Range.All]
Para obter o primeiro número n de caracteres de uma string em C #
String yourstring="Some Text";
String first_n_Number_of_Characters=yourstring.Substring(0,n);
Abaixo está um método de extensão que verifica se uma string é maior que o necessário e encurta a string para a quantidade máxima definida de caracteres e acrescenta '...'.
public static class StringExtensions
{
public static string Ellipsis(this string s, int charsToDisplay)
{
if (!string.IsNullOrWhiteSpace(s))
return s.Length <= charsToDisplay ? s : new string(s.Take(charsToDisplay).ToArray()) + "...";
return String.Empty;
}
}
No C # 8.0, você pode obter os cinco primeiros caracteres de uma string assim
string str = data[0..5];
Aqui estão mais algumas informações sobre índices e intervalos
Eu uso:
var firstFive = stringValue?.Substring(0, stringValue.Length >= 5 ? 5 : customAlias.Length);
ou alternativa, se você quiser verificar também o espaço em branco (em vez de apenas nulo):
var firstFive = !String.IsNullOrWhiteSpace(stringValue) && stringValue.Length >= 5 ? stringValue.Substring(0, 5) : stringValue
Ou você pode usar String.ToCharArray () .
Toma int startindex
e e int length
como parâmetros e retorna umchar[]
new string(stringValue.ToCharArray(0,5))
Você ainda precisa garantir que a string tenha o comprimento adequado; caso contrário, ela lançará um ArgumentOutOfRangeException
Tente este código quando str for menor que 5.
string strModified = str.Substring(0,str.Length>5?5:str.Length);
Se quisermos apenas os 5 primeiros caracteres de qualquer campo, isso poderá ser alcançado pelo Atributo Esquerdo
Vessel = f.Vessel !=null ? f.Vessel.Left(5) : ""
Experimente o código abaixo
string Name = "Abhishek";
string firstfour = Name.Substring(0, 4);
Response.Write(firstfour);
Eu tentei as respostas acima e o melhor que eu acho que é esse
@item.First_Name.Substring(0,1)
Neste eu poderia obter a primeira letra da string
char
** s e você está perguntando sobre ** caracteres s. Eles não são a mesma coisa.𣊾
e𣇞
há dois caracteres que eu precisava usar ontem, que falharam no software escrito em C # que eu estava usando porque o programador não sabia a diferença entre umchar
e um caractere. Não caia nessa armadilha!