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

    problema inserimento dalla linea di comando

    vorrei fare un programma che prende dalla linea di comando una stringa (args[0]) e confronta con stringa contenente nel metodo main.
    esempio: args[0]="prova";
    e il metodo ha stringhe "prova" e "prova2";
    output: prova
    poi l'utente deve ridigitare dalla linea di comando un altra Stringa senza terminare, termina solo quando la Stringa non è ne "prova" ne "prova2".

    ecco quello che ho provato a fare:

    codice:
    
    public class Prova {
    
    		public static void main(String[]args){
    
    		        String p1="prova", p2="prova2";
    			boolean flag=false;
    		do {
    			flag=false;
    
    			if (args[0].equals(p)){
    				System.out.println(p);
    				flag=true;
    			}
    
    			if (args[0].equals(p2)){
    				System.out.println(p2);
    				flag=true;
    			}
    
    
    
    		}while (flag==false);
    
    
    			
    			return;
    		}
    }
    non capisco perchè quando provo a digitare dalla linea di comando alla prima volta il seguente comando
    javac prova.java
    java prova prova
    funziona
    alla seconda non mi compare le 2 voci cioè (javac prova.java e java prova prova2)
    come faccio?

  2. #2
    1) non e' ben chiaro quello che vuoi fare
    2) il codice che hai scritto non ha molto senso: se io faccio "java prova ciao", args[0] sara' sempre uguale a ciao, generando quindi un loop infinito in quanto flag non viene mai settato a true.

    provo a capire quello che vuoi fare:
    vuoi un programmino, che legge l'input dell'utente e non termina finche' l'input dell'utente e' uguale o a "prova" o a "prova2". Se questo e' quello che vuoi, ecco come lo farei:

    codice:
    import java.io.*;
    
    public class Prova {
      public static final String PROVA = "prova";
      public static final String PROVA2 = "prova2";
    
      public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader (new InputStreamReader(System.in));
        String input = null;
        while (input == null || !(input.equals(PROVA) || input.equals(PROVA2))) {
          System.out.print ("Inserire parola: ");
          input = br.readLine();
        }
        System.out.println ("Parola giusta inserita! (" + input + ")");
      }
    }
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

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.