Ho letto questa domanda per ottenere il primo carattere della stringa. C'è un modo per ottenere il primo n numero di caratteri da una stringa in C #?
Ho letto questa domanda per ottenere il primo carattere della stringa. C'è un modo per ottenere il primo n numero di caratteri da una stringa in C #?
Risposte:
Puoi usare Enumerable. Prendi come:
char[] array = yourStringVariable.Take(5).ToArray();
Oppure puoi usare String.Substring .
string str = yourStringVariable.Substring(0,5);
Ricorda che String.Substringpotrebbe generare un'eccezione in caso di lunghezza della stringa inferiore ai caratteri richiesti.
Se vuoi riavere il risultato in stringa, puoi usare:
Utilizzo di String Constructor e LINQ's Take
string firstFivChar = new string(yourStringVariable.Take(5).ToArray());Il vantaggio con l'approccio non sta controllando la lunghezza prima della mano.
String.Substringcon il controllo degli erroripiace:
string firstFivCharWithSubString =
!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5
? yourStringVariable.Substring(0, 5)
: yourStringVariable;
IsNullOrWhiteSpaceè sbagliato qui. Considera una stringa con 10 spazi vuoti - il tuo codice restituirà tutti i 10. Usa IsNullOrEmptyinvece. (Non è buono combinare IsNullOrWhiteSpacecon qualsiasi altro test; Invece test per null + vuoto, quindi Trimse questo è il comportamento specificato, quindi fare qualsiasi test / operazione siano necessari.)
Vi preghiamo di provare:
yourString.Substring(0, 5);
Controllare il sottostringa C # , il metodo String.Substring
È possibile utilizzare Sottostringa (int startIndex, int length)
string result = str.Substring(0,5);
La sottostringa inizia in una posizione di carattere specificata e ha una lunghezza specificata. Questo metodo non modifica il valore dell'istanza corrente. Al contrario, restituisce una nuova stringa con caratteri di lunghezza a partire dalla posizione startIndex nella stringa corrente, MSDN
Cosa succede se la stringa di origine è inferiore a cinque caratteri? Otterrai un'eccezione utilizzando il metodo sopra. Possiamo mettere la condizione per verificare se il numero di caratteri nella stringa è superiore a 5, quindi ottenere i primi cinque tramite Sottostringa. Nota Ho assegnato la stringa di origine alla variabile firstFiveChar. Il primo FiveChar non cambia se i caratteri sono inferiori a 5, quindi parte non è richiesta.
string firstFiveChar = str;
If(!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5)
firstFiveChar = yourStringVariable.Substring(0, 5);
Nessuno ha menzionato come effettuare controlli adeguati durante l'utilizzo Substring(), quindi ho voluto contribuire al riguardo.
Se non vuoi usare Linqe andare avanti Substring(), devi assicurarti che la tua stringa sia più grande del secondo parametro (lunghezza) della Substring()funzione.
Diciamo che hai bisogno dei primi 5 caratteri. Dovresti ottenerli con un controllo adeguato, in questo modo:
string title = "love" // 15 characters
var firstFiveChars = title.Length <= 5 ? title : title.Substring(0, 5);
// firstFiveChars: "love" (4 characters)
Senza questo controllo, la Substring()funzione genererebbe un'eccezione perché ripeterebbe le lettere che non c'erano.
Penso che tu abbia avuto l'idea ...
Il problema .Substring(,)è che devi essere sicuro che la stringa data abbia almeno la lunghezza del numero richiesto di caratteri, altrimenti ArgumentOutOfRangeExceptionverrà lanciata una stringa .
Soluzione 1 (usando 'Sottostringa'):
var firstFive = stringValue != null ?
stringValue.Substring(0, stringValue.Length >= 5 ? 5 : stringValue.Length) :
null;
Lo svantaggio dell'uso .Substring(è che dovrai controllare la lunghezza della stringa specificata.
Soluzione 2 (usando 'Take'):
var firstFive = stringValue != null ?
string.Join("", stringValue.Take(5)) :
null;
L'uso di "Take" impedisce di controllare la lunghezza della stringa specificata.
Utilizzare la funzione PadRight per evitare che la stringa sia troppo corta, afferrare ciò che è necessario, quindi tagliare gli spazi dalla fine tutto in una sola istruzione.
strSomeString = strSomeString.PadRight(50).Substring(0,50).TrimEnd();
Non so perché qualcuno ne abbia parlato. Ma è il modo più breve e semplice per raggiungere questo obiettivo.
string str = yourString.Remove(n);
n - numero di caratteri necessari
Esempio
var zz = "7814148471";
Console.WriteLine(zz.Remove(5));
//result - 78141
Aggiungi cinque caratteri spazi bianchi, quindi taglia i primi cinque e taglia il risultato. Il numero di spazi che aggiungi deve corrispondere al numero che stai tagliando. Assicurati di includere la parentesi prima .Substring(0,X)o non aggiungerai nulla.
string str = (yourStringVariable + " ").Substring(0,5).Trim();
Con questa tecnica non dovrai preoccuparti del ArgumentOutOfRangeExceptionmenzionato in altre risposte.
string str = "GoodMorning"
string strModified = str.Substring(0,5);
Solo un avvertimento c'è un nuovo modo per farlo in C # 8.0: operatori di gamma
O come mi piace chiamarli, fette di panda.
Vecchio modo:
string newString = oldstring.Substring(0, 5);
Nuovo modo:
string newString = oldstring[..5];
Che a prima vista appare come un compromesso piuttosto negativo di una certa leggibilità per codice più breve, ma la nuova funzionalità ti dà
cose interessanti come questa:
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 ..]; // list [Range.FromStart (2)]
var slice4 = list [..]; // list [Range.All]
Per ottenere il primo n numero di caratteri da una stringa in C #
String yourstring="Some Text";
String first_n_Number_of_Characters=yourstring.Substring(0,n);
Di seguito è riportato un metodo di estensione che controlla se una stringa è più grande di quanto necessario e accorcia la stringa alla quantità massima definita di caratteri e aggiunge '...'.
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;
}
}
In C # 8.0 puoi ottenere i primi cinque caratteri di una stringa in questo modo
string str = data[0..5];
Ecco alcune ulteriori informazioni su Indici e intervalli
Io uso:
var firstFive = stringValue?.Substring(0, stringValue.Length >= 5 ? 5 : customAlias.Length);
o alternativa se si desidera controllare anche Whitespace (anziché solo Null):
var firstFive = !String.IsNullOrWhiteSpace(stringValue) && stringValue.Length >= 5 ? stringValue.Substring(0, 5) : stringValue
Oppure potresti usare String.ToCharArray () .
Prende int startindexe e int lengthcome parametri e restituisce achar[]
new string(stringValue.ToCharArray(0,5))
Dovresti comunque assicurarti che la stringa abbia la lunghezza corretta, altrimenti lancerà a ArgumentOutOfRangeException
Si prega di provare questo codice quando str è inferiore a 5.
string strModified = str.Substring(0,str.Length>5?5:str.Length);
Se vogliamo solo i primi 5 caratteri di qualsiasi campo, questo può essere ottenuto con l'attributo sinistro
Vessel = f.Vessel !=null ? f.Vessel.Left(5) : ""
Prova sotto il codice
string Name = "Abhishek";
string firstfour = Name.Substring(0, 4);
Response.Write(firstfour);
Ho provato le risposte sopra e il migliore penso sia questo
@item.First_Name.Substring(0,1)
In questo ho potuto ottenere la prima lettera della stringa
char** se stai chiedendo informazioni su ** caratteri . Non sono la stessa cosa.𣊾e𣇞sono due personaggi che dovevo usare proprio ieri e che non sono riusciti nel software scritto in C # che stavo usando perché il programmatore non conosceva la differenza tra unchare un personaggio. Non cadere in questa trappola!