2012-01-26 2 views
0

Все, что я хочу сделать, это использовать строковую переменную для всего ввода моего сканера.Простая программа Java с использованием той же переменной для ввода - не работает

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, но ничего не получаю.

Спасибо!

+0

Что вы ожидаете от вывода и что получаете? –

+1

Здесь недостаточно информации. Что такое myInputNom? – JSager

+0

Спасибо, я добавил ожидаемый вывод и myInputNom info – CodingIsAwesome

ответ

1

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

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

Это действительно облегчение, чтобы попытаться помочь, только чтобы обнаружить, что ничего не сломано.

1

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

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

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

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

Так, если условие здесь:

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

никогда не будет правдой.