Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Dividere il nome
Forum - C# / VB.NET - Dividere il nome

Avatar
Mikiwi93 (Normal User)
Rookie


Messaggi: 41
Iscritto: 03/11/2009

Segnala al moderatore
Postato alle 20:43
Giovedì, 04/03/2010
Poniamo il caso che io possiedo dei dati fatti così:
HelloWorld
CiaoGino
ComeStai
Come posso far in modo che escano:
Hello World
Ciao Gino
Come Stai
?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5620
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:46
Giovedì, 04/03/2010
Se esiste una "regola precisa" (ad esempio, la seconda parola inizia con la maiuscola), puoi fare una ricerca di una lettera maiuscola e poi usare la Substring per separare le due parti ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Mikiwi93 (Normal User)
Rookie


Messaggi: 41
Iscritto: 03/11/2009

Segnala al moderatore
Postato alle 20:49
Giovedì, 04/03/2010
Testo quotato

Postato originariamente da nessuno:

Se esiste una "regola precisa" (ad esempio, la seconda parola inizia con la maiuscola), puoi fare una ricerca di una lettera maiuscola e poi usare la Substring per separare le due parti ...


Si la regola è che la seconda parola è sempre maiuscola.....come posso fare substring(un'esempio)??

PM Quote
Avatar
Gianluca87 (Ex-Member)
Expert


Messaggi: 300
Iscritto: 16/11/2008

Segnala al moderatore
Postato alle 21:24
Giovedì, 04/03/2010
Testo quotato

Postato originariamente da nessuno:

Se esiste una "regola precisa" (ad esempio, la seconda parola inizia con la maiuscola), puoi fare una ricerca di una lettera maiuscola e poi usare la Substring per separare le due parti ...


troppo complicato....
suggerisco le regular expression.
Codice sorgente - presumibilmente C#

  1. string stringWord = "CiaoComeStaiTuttoBene?";
  2.             List<string> lstUpperWord = new List<string>();
  3.             foreach (Match mcUpperChar in Regex.Matches(stringWord, @"(\P{Lu}+)|(\p{Lu}+\P{Lu}*)"))
  4.             {
  5.                 lstUpperWord.Add(mcUpperChar.ToString());
  6.             }


in questo esempio lstUpperWord contiene una lista di tutte le parole presenti nella stringa splittate per maiuscola.


a domanda precisa, risposta precisa...
a domanda generica, risposta generica...
PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 10:20
Venerdì, 05/03/2010
e ovviamente, visto che non sa usare una substring, glielo spieghi tu cosa vuol dire tutto quel codice? Cosa mai potrà servirgli copiare e incollare? Avrà già dimenticato come si usa entro due giorni.

ps: nulla contro Mikiwi93, attenzione, è solo che vista la domanda sulla substring credo che le sue conoscenze di .NET non siano molto avanzate, probabilmente sta ancora imparando, una cosa normalissim. Meglio avere un codice lungo ma più lineare e facile da capire che uno corto ma molto al di sopra del proprio livello.

Ultima modifica effettuata da lorenzo il 05/03/2010 alle 10:20


"There's no point in being exact about something if you don't even know what you're talking about."

JOHN VON NEUMANN


Siamo italiani NO??
Allora scriviamo in ITALIANO!!!!
PM Quote
Avatar
Gianluca87 (Ex-Member)
Expert


Messaggi: 300
Iscritto: 16/11/2008

Segnala al moderatore
Postato alle 13:42
Venerdì, 05/03/2010
Testo quotato

Postato originariamente da lorenzo:
e ovviamente, visto che non sa usare una substring, glielo spieghi tu cosa vuol dire tutto quel codice?



non serve che glie lo spiego basta che cerca su google "regular expression"
tutto quel codice? sono 6 righe contando le graffe...

Testo quotato

Postato originariamente da lorenzo:
Cosa mai potrà servirgli copiare e incollare?



sul utilizzo della soluzione che ho proposto non metto becco... sono fatti suoi...usarla per prendere spunto, studiare, scriverla per intestare un pacco per fare sclerare il coriere...onestamente non me ne frega nulla.

Testo quotato

Postato originariamente da lorenzo:
ps: nulla contro Mikiwi93, attenzione, è solo che vista la domanda sulla substring credo che le sue conoscenze di .NET non siano molto avanzate, probabilmente sta ancora imparando, una cosa normalissim.


la domanda iniziale del topic era su "come fare" il titolo del topic non è "Come faccio con substring a selezionare partendo dall'iniziale maiuscola" quindi mi sembra che la mia risposta sia pertinente.
sul fatto che le sue conoscenze di .net non siano così avanzate metto 3 puntini "..."
la soluzione che ho proposto essendo meno tradizionale dovrebbe aprirlo a strade nuove che forse nemmeno tu conosci...

Testo quotato

Postato originariamente da lorenzo:
Meglio avere un codice lungo ma più lineare e facile da capire che uno corto ma molto al di sopra del proprio livello.


Questo porta alla luce una cosa importante...il codice che ho scritto è molto semplice in realtà è sufficiente comprenderlo... e studiare, una soluzione non è complessa solo perchè non la si conosce...

Concludo:
trovo abbastanza fuori luogo la tua critica dato che non è costruttiva e non propone una soluzione pratica, fosse sbagliata, non funzionasse correttamente, te ne darei atto...
penso di aver dato il mio suggerimento e aver espresso la mia opinione in maniera corretta, se vuoi rispondermi ti prego di usare un messaggio privato dato che il 3D non si  intitola "Polemiche sulle tecniche di programmazione"
Grazie


a domanda precisa, risposta precisa...
a domanda generica, risposta generica...
PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 22:28
Venerdì, 05/03/2010
Mi dispiace ma una cosa simile:

@"(\P{Lu}+)|(\p{Lu}+\P{Lu}*)")

è tutto tranne che chiara per una persona che non conosce le espressioni regolari. E in quanto alle soluzioni, devono anche essere dato in base alla persona che le richiede. Ad un programmatore che chiede come dividere una serie di nomi non propongo una soluzione che necessita di uno studio approfondito di un argomento del tutto nuovo, ma cerco di fargli capire come possa risolvere il problema.

altrimenti diamo codici e basta, chiudiamo il forum e stop. Un forum di programmazione deve essere usato per discutere/spiegare/condividere informazioni, non per fornire codice copia/incolla. Per quello esiste google che è molto più rapido.

Se poi lui vorrà approfondire il tuo metodo ben venga, tuttavia rimango del parere che offrire codice già pronto sia semplicemente inutile.

Codice sorgente - presumibilmente Plain Text

  1. nuove che forse nemmeno tu conosci...



mi sembra di essere all'asilo...non commento neanche.

Codice sorgente - presumibilmente Plain Text

  1. se vuoi rispondermi ti prego di usare un messaggio privato



non vedo il motivo, siamo in un forum e non ho nulla contro di te, posso rispondere come mi sento finché non offendo nessuno(non l'utente nessuno :rofl: ).

per finire, cito la frase che aveva scelto theprogrammer(se non ricordo male):

"Se le mie risposte non vi piacciono, ignoratele"

Ultima modifica effettuata da lorenzo il 05/03/2010 alle 22:29


"There's no point in being exact about something if you don't even know what you're talking about."

JOHN VON NEUMANN


Siamo italiani NO??
Allora scriviamo in ITALIANO!!!!
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 8:32
Sabato, 06/03/2010
Gianluca ha postato la sua soluzione, che è comunque valida. Se non ti va bene e pensi che sia troppo complicata, sei libero di postare qualcosa che ritieni comprensibile.
Fine discussione.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote