Stringhe - problema sostituzione caratteri

di il
8 risposte

Stringhe - problema sostituzione caratteri

Buongiorno,

Ho un problema con questo esercizio, in pratica, l'esercizio dice che:

Visto che la chiave è un int;

int chiave;
String frase = "ciao"

Ogni lettera sia sostituita del valore contenuto in chiave.

Esempio:

Se chiave = 3;

la lettera a sarà sostituita da d, la lettera b sara sostituita da e, e cosi via...

Come faccio a ragionare, non riesco, sono giorni che mi spremo...

8 Risposte

  • Re: Stringhe - problema sostituzione caratteri

    Lavora con i codici Ascii dei caratteri, sommando la chiave
  • Re: Stringhe - problema sostituzione caratteri

    No, non è questo il problema.

    Esempio:

    La stringa è "ABCD" a seconda della chiave che sarebbe 3, lo scambio è ogni due

    Esempio:

    ABCD

    DEVE ESSERE SOSTITUITA

    DEFI

    a seconda della chiave mi devo spostare a 3 a 3.


    Come si fà????
  • Re: Stringhe - problema sostituzione caratteri

    Ti ho già risposto ... Se sei sicuro che le risposte siano sbagliate, che scrivi a fare qui?
  • Re: Stringhe - problema sostituzione caratteri

    Non lo so fare, se mi puoi aiutare gentilmente.
    Non so come devo iniziare.
  • Re: Stringhe - problema sostituzione caratteri

    Ovviamente non si può scrivere il programma al posto tuo. Segui il consiglio che ti ho dato e prova a scrivere qualcosa.

    Cerca

    Java
    Cifrario di Cesare

    per prendere spunto ...
  • Re: Stringhe - problema sostituzione caratteri

    Ciao robot,
    se non hai ancora risolto il problema, prova a postare il codice che hai scritto finora, anche se è sbagliato.

    Ciao
    Fulvio
  • Re: Stringhe - problema sostituzione caratteri

    L'ho fatto con il metodo:
    
    
    public void sostituzione(char frase, int chiave){
    		
    		while(frase >= 0){
    			frase++;
    			frase = (char) (frase + chiave);
    		}
    
    Poi Questo è tutto il codice dell'esercizio, programma completo:
    
    package Es2;
    import java.util.*;
    
    public class FrequenzaCarattere {
    
    	public static void main(String[] args) {
    		
    		/*Scrivere un programma che conti il numero di volte che una cifra
    		 * appare in numero telefonico. il programma deve creare un array di dimensione
    		 * 10 che memorizza il conto di ogni cifra da 0 a 9. leggere da tastiera un numero di
    		 * telefono come stringa. esaminare ogni carattere del numero telefonico e incrementareù
    		 * il conteggio relativo alla cifra nell'array. visualizzare il contenuto dell'array.
    		 * */
    		
    	ArrayList<String> cifre = new ArrayList<String>(10);
    	String telefono = null;
    	int controlla = 0, chiave = 0;
    	char frase = 0;
    	Scanner in = new Scanner(System.in);
    	
    	
    	do{
    	System.out.println("Inserisci numero di telefono: ");
    	frase = (char) in.nextInt();
    	cifre.add((char)frase, telefono); //qui non mi trovo, cioè deve memorizzare solo frase e aggiungere nella lista
    		
    	System.out.println("Per terminare digita -1");
    	controlla = in.nextInt();
    	if(controlla == -1)
    		break;
    	
    	}while(true);
    	
    	System.out.println("Inserisci una chiave:");
    	chiave = in.nextInt();
    	
    	while(frase >= 0){
    		
    		frase++;
    		frase = (char) (frase + chiave);
    	}
    	
    	System.out.println("Il conteggio è: " +  frase);
    	
    
    	for(int i=0; i < cifre.size(); i++){
    		System.out.println(cifre.get(i));
    	}
    	
    
    	}
    	
    
    }
    
    

    GENTILMENTE MI POTETE CORREGGERE TUTTI GLI ORRORI CHE HO FATTO, GRAZIE.
  • Re: Stringhe - problema sostituzione caratteri

    Il codice che hai postato c'entra davvero poco con la traccia dell'esercizio ...

    Ti si chiede di creare un array di dimensione 10 e di usare ogni elemento dell' array come contatore del numero di volte che il corrispondente indice appare nel numero di telefono, ma tu stai usando una lista in modo quanto meno discutibile.

    Si specifica di leggere il numero di telefono come stringa, ma stai usando una serie di nextInt (), il ciclo do while in questo caso c'entra quasi zero, come anche quegli int controlla, chiave e il char frase, di improbabili cast non parliamone ...

    È tutto da rifare, segui la traccia che ti è stata data :

    - leggi il numero di telefono come stringa (basta un semplice nextLine (), nessuna altra chiamata ad altri nextXxx e nessun ciclo
    - cicla su ogni elemento della stringa (ti basta usare charAt () in maniera opportuna) e incrementa l'indice dell' array corrispondente alla cifra letta (controllando di aver letto davvero una cifra e trasformando il char ottenuto in charAt nel corrispondente valore numerico)

    Ti consiglio di lasciare a dopo eventuali complicazioni ...
Devi accedere o registrarti per scrivere nel forum
8 risposte