He leído esta pregunta para obtener el primer carácter de la cadena. ¿Hay alguna manera de obtener el primer n número de caracteres de una cadena en C #?
He leído esta pregunta para obtener el primer carácter de la cadena. ¿Hay alguna manera de obtener el primer n número de caracteres de una cadena en C #?
Respuestas:
Puede usar Enumerable. Tome como:
char[] array = yourStringVariable.Take(5).ToArray();
O puede usar String.Substring .
string str = yourStringVariable.Substring(0,5);
Recuerde que String.Substring
podría generar una excepción en caso de que la longitud de la cadena sea menor que los caracteres requeridos.
Si desea recuperar el resultado en cadena, puede usar:
Usando String Constructor y LINQ's Take
string firstFivChar = new string(yourStringVariable.Take(5).ToArray());
La ventaja con el enfoque no es verificar la longitud de antemano.
String.Substring
con la comprobación de erroresme gusta:
string firstFivCharWithSubString =
!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5
? yourStringVariable.Substring(0, 5)
: yourStringVariable;
IsNullOrWhiteSpace
Está mal aquí. Considere una cadena con 10 espacios en blanco: su código devolverá los 10. Use en su IsNullOrEmpty
lugar. (No es bueno combinarlo IsNullOrWhiteSpace
con ninguna otra prueba; en su lugar, pruebe nulo + vacío, luego, Trim
si ese es el comportamiento especificado, haga las pruebas / operaciones necesarias.)
Puede usar Subcadena (int startIndex, int length)
string result = str.Substring(0,5);
La subcadena comienza en una posición de carácter especificada y tiene una longitud especificada. Este método no modifica el valor de la instancia actual. En su lugar, devuelve una nueva cadena con caracteres de longitud que comienzan desde la posición startIndex en la cadena actual, MSDN
¿Qué sucede si la cadena de origen tiene menos de cinco caracteres? Obtendrá una excepción al usar el método anterior. Podemos poner la condición para verificar si el número de caracteres en la cadena es más de 5 y luego obtener los primeros cinco a través de Subcadena. Tenga en cuenta que he asignado la cadena de origen a la variable firstFiveChar. FirstFiveChar no cambia si los caracteres son inferiores a 5, por lo que no se requiere parte.
string firstFiveChar = str;
If(!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5)
firstFiveChar = yourStringVariable.Substring(0, 5);
Nadie mencionó cómo hacer las comprobaciones adecuadas cuando se usa Substring()
, por lo que quería contribuir al respecto.
Si no desea usar Linq
e ir con Substring()
, debe asegurarse de que su cadena sea más grande que el segundo parámetro (longitud) de la Substring()
función.
Digamos que necesitas los primeros 5 caracteres. Debería obtenerlos con la verificación adecuada, así:
string title = "love" // 15 characters
var firstFiveChars = title.Length <= 5 ? title : title.Substring(0, 5);
// firstFiveChars: "love" (4 characters)
Sin esta verificación, la Substring()
función generaría una excepción porque iteraría a través de letras que no están allí.
Creo que tienes la idea ...
El problema .Substring(,)
es que debe asegurarse de que la cadena dada tenga al menos la longitud de la cantidad de caracteres solicitada; de lo contrario, se ArgumentOutOfRangeException
generará un .
Solución 1 (usando 'Subcadena'):
var firstFive = stringValue != null ?
stringValue.Substring(0, stringValue.Length >= 5 ? 5 : stringValue.Length) :
null;
El inconveniente de usar .Substring(
es que necesitará verificar la longitud de la cadena dada.
Solución 2 (usando 'Take'):
var firstFive = stringValue != null ?
string.Join("", stringValue.Take(5)) :
null;
El uso de 'Tomar' evitará que deba verificar la longitud de la cadena dada.
Use la función PadRight para evitar que la cadena sea demasiado corta, tome lo que necesita y luego recorte los espacios desde el final, todo en una sola declaración.
strSomeString = strSomeString.PadRight(50).Substring(0,50).TrimEnd();
No sé por qué alguien mencionó esto. Pero es la forma más corta y sencilla de lograr esto.
string str = yourString.Remove(n);
n
- número de caracteres que necesitas
Ejemplo
var zz = "7814148471";
Console.WriteLine(zz.Remove(5));
//result - 78141
Agregue cinco caracteres de espacio en blanco, luego corte los primeros cinco y recorte el resultado. El número de espacios que agregue debe coincidir con el número que está cortando. Asegúrese de incluir el paréntesis antes .Substring(0,X)
o no agregará nada.
string str = (yourStringVariable + " ").Substring(0,5).Trim();
Con esta técnica no tendrá que preocuparse por lo ArgumentOutOfRangeException
mencionado en otras respuestas.
string str = "GoodMorning"
string strModified = str.Substring(0,5);
Solo un aviso es una nueva forma de hacer esto en C # 8.0: operadores de rango
O como me gusta llamarlos, rebanadas de pandas.
Vieja forma:
string newString = oldstring.Substring(0, 5);
Nueva manera:
string newString = oldstring[..5];
Lo que a primera vista parece una muy mala compensación de cierta legibilidad para un código más corto, pero la nueva característica le brinda
cosas geniales como esta:
var slice1 = list [2 .. ^ 3]; // list [Range.Create (2, Index.CreateFromEnd (3))]
var slice2 = list [.. ^ 3]; // list [Range.ToEnd (Index.CreateFromEnd (3))]
var slice3 = list [2 ..]; // lista [Range.FromStart (2)]
var slice4 = list [..]; // lista [Range.All]
Para obtener el primer n número de caracteres de una cadena en C #
String yourstring="Some Text";
String first_n_Number_of_Characters=yourstring.Substring(0,n);
A continuación se muestra un método de extensión que comprueba si una cadena es más grande de lo que se necesitaba y acorta la cadena a la cantidad máxima definida de caracteres y agrega '...'.
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;
}
}
En C # 8.0 puede obtener los primeros cinco caracteres de una cadena de esta manera
string str = data[0..5];
Aquí hay más información sobre índices y rangos
Yo suelo:
var firstFive = stringValue?.Substring(0, stringValue.Length >= 5 ? 5 : customAlias.Length);
o alternativa si desea verificar el espacio en blanco también (en lugar de solo nulo):
var firstFive = !String.IsNullOrWhiteSpace(stringValue) && stringValue.Length >= 5 ? stringValue.Substring(0, 5) : stringValue
O puede usar String.ToCharArray () .
Toma int startindex
y int length
como parámetros y devuelve unchar[]
new string(stringValue.ToCharArray(0,5))
Aún deberá asegurarse de que la cadena tenga la longitud adecuada, de lo contrario arrojará un ArgumentOutOfRangeException
Intente amablemente este código cuando str sea menor que 5.
string strModified = str.Substring(0,str.Length>5?5:str.Length);
Si solo queremos los primeros 5 caracteres de cualquier campo, esto se puede lograr con el atributo izquierdo
Vessel = f.Vessel !=null ? f.Vessel.Left(5) : ""
Prueba el siguiente código
string Name = "Abhishek";
string firstfour = Name.Substring(0, 4);
Response.Write(firstfour);
He probado las respuestas anteriores y la mejor creo que es esta
@item.First_Name.Substring(0,1)
En esto pude obtener la primera letra de la cadena
char
** sy preguntas sobre ** caracteres s. No són la misma cosa.𣊾
y𣇞
son dos caracteres que necesitaba usar ayer mismo que fallaron en el software escrito en C # que estaba usando porque el programador no sabía la diferencia entre achar
y un carácter. ¡No caigas en esta trampa!