Ho una stringa = "google.com 220 USD 3d 19h".C# stringa divisa
Voglio estrarre solo la parte ".com" .......
che cosa è il modo più semplice per manipolare il metodo stringa divisa per ottenere questo risultato?
Ho una stringa = "google.com 220 USD 3d 19h".C# stringa divisa
Voglio estrarre solo la parte ".com" .......
che cosa è il modo più semplice per manipolare il metodo stringa divisa per ottenere questo risultato?
Suppongo che vogliate estrarre il nome di dominio o la parte TLD della stringa. Questo dovrebbe fare il lavoro:
var str = "google.com 220 USD 3d 19h";
var domain = str.Split(' ')[0]; // google.com
var tld = domain.Substring(domain.IndexOf('.')) // .com
Non sono sicuro del motivo per cui è stato votato, il codice tld è sbagliato. Immagino che volevi dire: var tld = domain.Substring (domain.IndexOf ('.')); // .com – RedFilter
Presumo che var tld = domain.Substring (domain.IndexOf ('.')) era pensato (modificato, spero che non ti dispiaccia Noldorin)? –
@OrbMan: sei un giudice terribilmente severo! Era chiaramente solo un refuso, che avresti potuto aggiustare. Presumo che il voto negativo sia arrivato da te. : P – Noldorin
bene se si può supporre che lo spazio è separatore la sua facile come
stringa completa
char [] delimiterChars = { ''}; // usato in modo da poter specificare più delimensioni string [] words = full.Split (delimiterChars, 1); // divide solo una parola con lo spazio
risultato stringa = parole [0] // in questo modo è possibile accedervi
Supponendo che si desidera che il dominio di primo livello:
string str = "google.com 220 USD 3d 19h";
string tld = str.Substring(str.LastIndexOf('.')).Split(' ')[0];
Console.WriteLine(tld);
uscita:
.com
Questo prende in considerazione i sottodomini.
idea alternativo
string str = "google.com 220 USD 3d 19h";
string match = ".com";
string dotcomportion = str.Substring(str.IndexOf(match), match.Length);
Funziona solo se il TLD è .com. Considerando che il punto è di scoprire realmente qual è il tld, questo sembra strano. – Brian
@Brian: mentre sono d'accordo sul fatto che il codice non è la soluzione giusta, seleziona qualsiasi TLD a tre lettere (come .net o .org). Mancherà comunque qualsiasi altro TLD (come .de o .info). –
Se per estratto intendi rimuovere, è possibile utilizzare il
var result = str.Replace ("" "com".) Metodo Sostituire;
utilizza Regex sarebbe l'opzione migliore, ma se si desidera utilizzare Split poi
var str = "google.com 220 USD 3d 19h";
var str1 = str.Split(' ')[0];
var str2 = str1.Split('.')[0];
Console.WriteLine(str1.Replace(str2, string.Empty));
So che hai chiesto sull'utilizzo del metodo Split, ma io non sono sicuro che sia la strada migliore. La divisione di una stringa alloca almeno 5 nuove stringhe che vengono immediatamente ignorate e quindi devono attendere fino a quando non verrà rilasciato GC. Stai meglio usando l'indicizzazione nella stringa e tirando fuori solo ciò di cui hai bisogno.
string str = "google.com 220 USD 3d 19h";
int ix = str.IndexOf(' ');
int ix2 = str.IndexOf('.', 0, ix);
string tld = str.Substring(ix2, ix - ix2);
string domain = str.Substring(0, ix);
non riesco a pensare a una ragione al mondo che si vorrebbe utilizzare String.Split
per questo scopo. Questo problema è risolto al meglio con un'espressione regolare.
Qui è un piccolo programma che illustra come farlo:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
String foo = "google.com 220 USD 3d 19h";
Regex regex = new Regex(@"(.com)", RegexOptions.IgnoreCase);
Match match = regex.Match(foo);
if (match.Success)
Console.WriteLine(match.Groups[1].Value);
}
}
Downvoters: c'è un motivo per cui questo è stato downvoted (a parte il fatto che non ho usato String.Split)? –
Non ho fatto un downvote, ma il tuo tono potrebbe avere qualcosa a che fare con esso. Solo perché non puoi pensare a una ragione non significa che non ce n'è una. –
Hmm, buon punto - Sembro un po 'idiota :) Grazie per avermelo fatto notare. –
stringa estratta = ".com" ;. Questo è il modo più semplice e non hai nemmeno bisogno di usare string.split! :-) –
Dettagli insufficienti: se fornisci ulteriori esempi di stringhe e ciò che devi estrarre, può essere ideata una buona soluzione generale. – Oded
Considera l'utilizzo di un'espressione regolare. –