Come rimuovere gli spazi da una stringa
ma anche altri caratteri
Primo Modo (non ottimizzato):
diciamo questo serve piu' per esercizio che di reale utilita' sostanzialmente si crea un array di char (usando il metodo toCharArray) e si "scorre" tutto l'array... se il carattere non e' uno spazio si aggiunge alla stringa che verra' restituita, se lo e' ovviamente no.
Va da se che questo metodo e' altamente dispendioso in termini di risorse in quanto bisogna percorrere tutta la stringa (pensate ad un testo molto lungo invece che ad una singola parola). Quindi vale come esercizio accademico ma non ne consiglio l'utilizzo.
Secondo Modo (ottimizzato):
si usa il metodo split, passandogli lo spazio come parametro (Unicode: \u0020) poi si prendono i vari tronconi (chunks) e si "ri-appiccicano" insieme nella stringa da restituire. Va da se' che non dovendo scansionare tutta la stringa questo metodo e' molto piu' efficiente - addendum: del primo.
Per rimuovere qualsiasi altro carattere (o stringa)
1) farselo passare come parametro
2) sostituirlo dove nei metodi sopra c'e' lo spazio
In alternativa:
Usare il metodo replace passando come primo parametro la stringa (o il carattere) da levare e come secondo una stringa vuota ("")
In realta' prendendo una tabella comparativa da questo post di stackoverflow si vede che lo split e' uno dei metodi peggiori per cui su grandi volumi di file e' molto piu' efficace la classe Scanner
| Tokenizer | String.split() | while+SubString | Scanner | ScannerWithCompiledPattern |
| 4.0 ms | 5.1 ms | 1.2 ms | 0.5 ms | 0.1 ms |
| 4.4 ms | 4.8 ms | 1.1 ms | 0.1 ms | 0.1 ms |
| 3.5 ms | 4.7 ms | 1.2 ms | 0.1 ms | 0.1 ms |
| 3.5 ms | 4.7 ms | 1.1 ms | 0.1 ms | 0.1 ms |
| 3.5 ms | 4.7 ms | 1.1 ms | 0.1 ms | 0.1 ms |








