Partage
  • Partager sur Facebook
  • Partager sur Twitter

Saisi de tableau

Sujet résolu
    4 novembre 2008 à 19:25:09

    bonjour,

    j'avais deja fait un post demandant la résolution de mon probleme mais vu qu'il était issu d'autre probleme (maintenant résolu) je me suis dit qu'il était bon que je refasse ma demande.

    Alors voila je crée une classe qui a comme variable d'instance un tableau (private).

    Le probleme viens à la saisi...

    voici mon programme:

    import java.util.Scanner;
    
    public class Client {
    
             private int IP[];
    	 private String pass;
    
    //CONSTRUCTEURS
    
    public Client(){
    		
    		
    		IP = new int[4];
    		IP[0]= 255;
    		IP[1]=255;
    		IP[2]=255;
    		IP[3]=255;
    		pass = "client";
    					}
    
    public Client(int pIP[],String ppass){
    		
    		
    		IP=pIP;
    		pass = ppass;
    		
    					}
    
    //ACCESSEURS + MUTATEURS
    
    public int[] getIP()
    	  {
    		  return IP;
    	  }
    	  
    	  public String getpass()
    	  {
    		  return pass;
    	  }
    	  
    	
    	  public void setIP(int pIP[])
    	  {
    		  IP= pIP;
    	  }
    	  
    	  public void setpass(String ppass)
    	  {
    		  pass = ppass ;
    	  }
    


    Jusqu'ici il n'y a pas d'erreur c'est super!

    Bref passons à mes 2 méthodes:

    La METHODE AFFICHAGE (enfin toString mais elle a comme fonction d'affiché mes vraibles d'instance!).
    public String toString()
    	{
    		return "Votre adresse IP est: " + this.IP[0]+"."+this.IP[1]+"."+this.IP[2]+"."+this.IP[3] + " et votre mot de passe est " + this.pass  ;
    							
    	}
    


    Cette méthode fonctionne trés bien!

    LA METHODE SAISI:

    public void Saisie()
    	{
    		Scanner toto= new Scanner(System.in);
    		
    		System.out.print("Veuillez saisir votre adresse IP en respectant la norme IpV4:");
    		this.IP[0]=toto.nextInt();
    		System.out.print(".");
    		this.IP[1]=toto.nextInt();
    		System.out.print(".");
    		this.IP[2]=toto.nextInt();
    		System.out.print(".");
    		this.IP[3]=toto.nextInt();
    		System.out.print("Veuillez saisir votre mot de passe:");
    		this.pass=toto.nextLine();
    		
    		
    		
    	}
    


    Voila ici il y a un probleme mais tout d'abord la classe Main:

    public class Mainclass {
    
    	
    	
    	
    	
    	
    	
    	
    	public static void main(String[] args) {
    	
    		int ipyoyo[]={23,23,23,23};
    		Client yoyo=new Client("toto",ipyoyo,"toto");
    		
    		Client toto=new Client();
    		
    	
    		
    		
    		
    		toto.Saisie();
    		
    		
    		
    		
    		
    		
    			
    		
    		
    		
    		
    		
    
    	}
    
    }
    


    Bref j'ai 2 soucis!

    Le premier j'aimerais à la saisi des valeurs de l'adresse IP qu'il n'y est pas saut à la ligne.

    Le deuxiéme , si vous testez ce code vous remarquerez qu'il est impossible de saisir le mot de passe aprés avoir entré l'adresse IP (je ne comprend pas pourquoi cela ne fonctionne pas!).

    En espérant que vous puissez m'aider,

    Cordialement,

    sushis
    • Partager sur Facebook
    • Partager sur Twitter
      4 novembre 2008 à 22:14:09

      Salut !

      Tiens je te propose cette solution. Je te laisse regarder la Javadoc de Scanner pour les histoires de Delimiter (y'a un exemple vers le début).

      Dans ce code il faut taper l'ip à la main avec les points.

      Évidement ce n'est pas du tout fiable je te laisse faire les vérifications sur les entrées si tu veux que n'importe quel utilisateur utilise ce programme

      public void Saisie() 
      	{	  			
      			
      			System.out.print("Veuillez saisir votre adresse IP en respectant la norme IpV4:");
      			
                              //l'utilisateur va taper l'ip en plein, avec les points
      			Scanner ip_in = new Scanner(System.in);	
      			String ip = ip_in.nextLine();			
      			
                              //un autre objet Scanner qui va lire à partir du String créé avant
                              //il utilisera le point comme Delimiter
      			Scanner toto = new Scanner(ip).useDelimiter("\\s*\\.\\s*");			
      			
      			this.IP[0]=toto.nextInt();
      			
      			this.IP[1]=toto.nextInt();
      			
      			this.IP[2]=toto.nextInt();
      			
      			this.IP[3]=toto.nextInt();
      			
      			//l'utilisateur rentre le pass
      			Scanner pass_in = new Scanner(System.in);
      			
      			System.out.print("Veuillez saisir votre mot de passe:");
      			
      			this.pass = pass_in.next();		
      	}
      
      • Partager sur Facebook
      • Partager sur Twitter
        5 novembre 2008 à 1:13:07

        super ça marche vraiment nickel!
        • Partager sur Facebook
        • Partager sur Twitter

        Saisi de tableau

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown