Java простая программа, использующая ту же переменную для ввода - не работает - PullRequest
0 голосов
/ 26 января 2012

Все, что я хочу сделать, это использовать строковую переменную для всех входных данных моего сканера.

public static void main(String[] args){
Scanner getInput = new Scanner(System.in);

String defaultInFile = "fileContainingEmails.txt";
String defaultOutFile = "copyPasteMyEmails.txt";

String myInFile;
String myOutFile;

    System.out.print("Enter input filename [default: " + defaultInFile + "]: ");
    //CRUD applications oh yea
    String myInputNom = getInput.nextLine();
    if (myInputNom.equals(""))
    {
        myInFile = defaultInFile;
    }
    else
    {   
        myInFile = myInputNom;
    }

    //System.out.println(defaultOutFile); THIS WORKS

    if (myInputNom.equals(""))
    {
        System.out.print("Enter output filename [default: " + defaultOutFile + "]: ");
    }
    else
    {
        System.out.print("Enter output filename [default: " + myInFile + "]: ");
    }

    //System.out.println("'" + myInputNom + "'");        

    myInputNom = getInput.nextLine();

    System.out.println("'" + myInputNom + "'"); 

    if (myInputNom.equals(""))
    {
        myOutFile = defaultOutFile;
    }
    else
    {
        myOutFile = myInputNom;
    }

    System.out.println("Input file: " + myInFile);
    System.out.println("Output file: " + myOutFile);
    }

Так что я делаю не так?Второй getInput.nextLine ();действует так, как будто игнорирует весь ввод.

Я ожидаю чего-то в myOutFile, но ничего не получаю.

Спасибо!

Ответы [ 2 ]

1 голос
/ 26 января 2012

Ваш код отлично работает здесь.

% java -cp . foo
Enter input filename [default: fileContainingEmails.txt]: df
Enter output filename [default: df]: dfee
'dfee'
Input file: df
Output file: dfee

На самом деле попытка помочь - это облегчение, только чтобы обнаружить, что ничего не сломано.

1 голос
/ 26 января 2012

Ваш комментарий:

Я не хочу его нигде записывать, просто отображать имя файла по умолчанию на экране, если ввод пустой

вошибка, поскольку ваше имя входного файла никогда не будет пустым.Если пользователь не вводит текст для входного файла, ему будет присвоено значение по умолчанию:

  if (myInputNom.equals("")) {
     System.out.print("Enter output filename [default: " + defaultOutFile + "]: ");
  } else {
     System.out.print("Enter output filename [default: " + myInFile + "]: ");
  }

Так что условие if здесь:

  if (myInputNom.equals("")) {
     myOutFile = defaultOutFile;
  } else {
     myOutFile = myInputNom;
  }

никогда не будет истинным.

...