Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Programma Java che inverte caratteri di una parola

    Salve a tutti, ho un problema con questo programma.
    Mi restituisce una stringa totalmente errata; posto il codice.
    Quello che dovrebbe fare è ad esempio inserita la parola "casa" stampare "asac".

    codice:
    public class s1
    {
    	public static void main(String args[])
    	{
    		String a=JOptionPane.showInputDialog("Inserisci una stringa");
    		String b="";
    		int i=a.length();
    			while(i!=0)		
    			{
    			 b=b.concat(a.substring(i));
    			 i--;		
    			}
    		System.out.println(b.length());	
    	}
    }
    Quale potrebbe essere il problema?
    Grazie anticipatamente...

  2. #2
    allora....

    codice:
    import javax.swing.*;
    
    public class StringaUtility{
    	
    	public static void main(String[] args){
    		
    		 String StrInp=JOptionPane.showInputDialog("Inserisci una stringa");
             String temp="";
             for(int i=StrInp.length()-1;i>=0;i--)
    	         temp=temp+StrInp.charAt(i);
    	     System.out.println(temp);
    	     
         }
     }

    tiè

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Programma Java che inverte caratteri di una parola

    Originariamente inviato da raeco
    Quale potrebbe essere il problema?
    Un problema sta in b=b.concat(a.substring(i)): dopo l'inizializzazione la stringa a non viene più toccata, col risultato che continui a concatenare pezzi che non ti servono!
    Ad esempio, se l'utente inserisce "ciao", iterazione dopo iterazione avrai questo comportamento:

    i = 4
    a = ciao
    b =

    i = 3
    a = ciao
    b =

    i = 2
    a = ciao
    b = o

    i = 1
    a = ciao
    b = oao

    Inoltre alla prima iterazione (i = lunghezza della stringa) la chiamata a substring non ti restituisce nulla, dovresti partire da length - 1 e proseguire fino a i = 0, altrimenti salti un'iterazione!

    Rimanenendo sul tuo esempio:

    codice:
    import javax.swing.JOptionPane;
    
    public class s1 {
        public static void main(String[] args) {
            String a = JOptionPane.showInputDialog("Inserisci una stringa");
            String b = "";
            
            int i = a.length() - 1;
            while(i >= 0) {
                b += a.charAt(i--);
            }
            
            System.out.println("Stringa al rovescio: " + b);	
        }
    }
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Praticamente mi giocavo un posto nel controllo.

    Molto gentili!!

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da raeco
    Praticamente mi giocavo un posto nel controllo.

    Molto gentili!!
    Non solo, ad ogni iterazione anziché aggiungere alla stringa un singolo carattere ne aggiungevi 1 poi 2 poi 3 poi 4... fino alla lunghezza della stringa, ti ho spiegato il perché
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Come indicato nel punto 6 del Regolamento interno, quando si posta del codice si devono utilizzare gli appositi tag CODE. Il codice, inoltre, deve essere indentato.

    Sistemo i post in cui c'è del codice.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.