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.Substring
potrebbe 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.Substring
con 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 IsNullOrEmpty
invece. (Non è buono combinare IsNullOrWhiteSpace
con qualsiasi altro test; Invece test per null + vuoto, quindi Trim
se 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 Linq
e 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 ArgumentOutOfRangeException
verrà 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 ArgumentOutOfRangeException
menzionato 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 startindex
e e int length
come 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 unchar
e un personaggio. Non cadere in questa trappola!