dal 2003, semper fidelis!

Aiuto programmino Java!

Il luogo dove parlare di informatica.

Moderator: Moderatori

Ciaoo a tutti niubbazzi, ogni tanto risorgo anch'io dalle mie ceneri (anche se non sono Fenice) per scrivere qualcosina.
Ahimè non sono qui per parlare di videogame, ma devo rompervi le balle a scopo didattico... :grromg:

In uni ho iniziato da poco il corso di Java, ed oltre alle lezioni di teoria, ho ovviamente il laboratorio dove dovrei esercitarmi nella programmazione. Dico dovrei in quanto mentre gli altri gruppi entrando in laboratorio, vengono dati loro degli esercizi da fare per 4 ore, caso vuole che nel mio gruppo ci sia un prof che divaghi in cazzate senza concludere mai nulla. Nel raro caso in cui ci faccia fare qualche esercizio, pretende che lo facciamo su Gobby, un editor collaborativo, dove puntualmente arriva il ripetente di turno che deve fare il figo e far vedere che lo risolve con metodi che non abbiamo ancora fatto, il prof perde tempo a spiegarlo concludendo con: "ma questo lo vedremo più avanti". Risultato: 4 ore buttate.
Per farvela breve, prendo gli esercizi di un altro gruppo e provo a farli, il problema è che la prof degli altri spiega i metodi da usare, ed io non so se non sono in grado di farlo per incapacità mia, o perchè non sono a conoscenza dei metodi da usare.
Quindi chiedo a voi, o saccenti programmatori, di porre fine ai miei smadonnamenti mettendomi sulla retta via. :bravbrav:
Premetto che essendo in questa situazione avrò bisogno molto del vostro aiuto, ovviamente non pretendo che mi facciate l'esercizio voi, anche perchè non servirebbe a nulla, ma che mi illustriate il metodo da usare o che mi diate una piccola dritta.

Vengo al dunque, l'esercizio è questo:

Scrivere un programma che legge una parola e compie le seguenti operazioni:

1) Stampa la parola sostituendo tutti i caratteri con il carattere '*';

2) Stampa la parola in minuscolo sostituendo tutte le "a" con asterischi

3) Stampa la parola in minuscolo eliminando le "a".

4) Stampa la parola in minuscolo sostituendo tutte le vocali con il carattere
'*';

5) Stampa la parola in minuscolo eliminando le vocali.

Per estrarre il carattere in posizione k di una parola, usare il metodo
charAt della classe String.

Ricordarsi che le posizioni si contano a partire da 0.

Ad esempio, nella parola "cane"

il carattere 'c' ha posizione 0
il carattere 'a' ha posizione 1
il carattere 'n' ha posizione 2
il carattere 'e' ha posizione 3

Notare che l'ultimo carattere di una parola ha posizione

lunghezza(parola) - 1


Esempi
-----

Una parola --> attrazione
**********
*ttr*zione
ttrzione
*ttr*z**n*
ttrzn

Una parola --> costruzione
***********
costruzione
costruzione
c*str*z**n*
cstrzn
----------------------------------------------------------------------------------
Per il primo punto nessun problema.
Per tutti gli altri il mio problema è, mi sta bene usare il metodo charAt, ma poi come faccio a dire sostituiscilo/eliminalo e ristampa la stringa con le correzioni?
So che è banale l'esercizio, ma non avendolo mai visto non so come fare, ho provato in tutti i modi ma non mi viene in mente nulla.
Vi ringrazio in anticipo.
p.s. Non badate all'italiano che ho usato, sono un po' cotto ;)

segnalo il topic a Sarno

piccolo suggerimento....

Esistono le substring ed esiste sulle stringhe il metodo .replace(char, char)

In realtà io lo farei con StringBuffer, ma non credo l'abbia fatto (giusto?? ... se vuoi te lo faccio vedere....anche se credo che lo scopo dell'esercizio sia un altro...)

Infine c'è differenza tra "tornare la stessa stringa modificata" e "tornare una nuova stringa come risultato delle modifiche della vecchia stringa"


[EDIT]
ora che rileggo meglio, tu non devi manipolare la stringa, ma solo far stampare o meno un carattere in base a delle condizioni.....ti scrivo l'esempio per la numero 2

Code: Select all

String word = "PAROLA";
char star = '*';
for(int i = 0; i < word.length(); i++){ 
   if(word.charAt(i) != 'a' && word.charAt(i) != 'A' ){
      System.out.print(word.toLowerCase().charAt(i));
   }else{
      System.out.print(star); 
   }
}
Ovviamente tutto quello sopra va in un metodo...

Se hai dubbi scrivi qui, mandami un MP oppure

Code: Select all

 gibi.coppola at  libero.it
senza problemi :smile:

edit by shady
"strunz, la tua mail vuoi che diventi preda di bot e quant'altro?"

o.0 cazzo, gibi sta diventando un megaPvO

Grazie mille Sarno, mi sei stato di grande aiuto!! Appena ho un attimo di tempo provo a farlo e poi te lo mando così mi dici! :D

mettilo qui, vogliamo vedere!!!
Ecco qui, l'ho fatto così!
La libreria prog.io è del mio professore, vuole che usiamo quella per gli input e gli output per il momento :sisi:
Sicuramente ci saranno modi più eleganti per strutturare il codice, però son già contento di esserlo riuscito a fare e funziona! Ditemi voi! ;)

Code: Select all

import prog.io.*;

class Esercizio2Stringhe {
	public static void main (String[] args) {
		
		ConsoleOutputManager out = new ConsoleOutputManager();
		ConsoleInputManager in = new ConsoleInputManager();
		
		String s;
		char star='*';
		int i;
		
		s = in.readLine("Inserire una parola ");
		
		for (i=0; i<s.length(); i++) {
			out.print("*");
		}
		out.println("");
		
		for (i=0; i<s.length(); i++) {
			 if(s.charAt(i) != 'a' && s.charAt(i) != 'A' )
				out.print(s.toLowerCase().charAt(i));
             else
				out.print(star);
		   }
		
		out.println("");
		
		for (i=0; i<s.length(); i++) {
			if(s.charAt(i) != 'a' && s.charAt(i) != 'A' )
				out.print(s.toLowerCase().charAt(i));
			}
		
		out.println("");	
		
		for (i=0; i<s.length(); i++) {
			 switch (s.charAt(i))
			 {
				case 'a': out.print(star);
							break;
				case 'A': out.print(star);
							break;
				case 'e': out.print(star);
							break;
				case 'E': out.print(star);
							break;
				case 'i': out.print(star);
							break;
				case 'I': out.print(star);
							break;
				case 'o': out.print(star);
							break;
				case 'O': out.print(star);
							break;
				case 'u': out.print(star);
							break;
				case 'U': out.print(star);
							break;
				default: out.print(s.toLowerCase().charAt(i));
			}
		}
		
		out.println("");
		
		
		
		for (i=0; i<s.length(); i++) {
			 switch (s.charAt(i))
			 {
				case 'a': 
							break;
				case 'A': 
							break;
				case 'e': ;
							break;
				case 'E': 
							break;
				case 'i': 
							break;
				case 'I': 
							break;
				case 'o': 
							break;
				case 'O': 
							break;
				case 'u': 
							break;
				case 'U': 
							break;
				default: out.print(s.toLowerCase().charAt(i));
			}
		}
	}
}

Re:

Sarn0! wrote:In realtà io lo farei con StringBuffer
Stavo pre scriverlo io :hailasd:

Who is online

In total there is 1 user online :: 0 registered, 0 hidden and 1 guest (based on users active over the past 5 minutes)
Most users ever online was 164 on Wed Aug 18, 2021 7:03 pm

Users browsing this forum: No registered users and 1 guest