2016-10-21 8 views
0

私は新しいファイルを作成するプログラムを持っていますが、ユーザーが何も入力しなければならない場合はデフォルトのファイル名を持つ必要があり、誰かが助けてくれるのだろうかと思っていました。デフォルトのファイル名無回答

これまでのところ、私はプログラムにファイル名を尋ねてきましたが、 "output.txt"のようにデフォルトを設定する方法がわかりません。ここで

はスニップ、それ私のコードのである:ユーザーがファイル名として入力したものを

//Creates a Scanner Object for keyboard input. 
Scanner keyboard = new Scanner(System.in); 

//Get the filename. 
System.out.print("Enter a filename: "); 
filename = keyboard.nextLine(); 

答えて

1

isEmpty

public boolean isEmpty()

が真、そして、length()が0である場合に限ります。

つまり、空白を取り除くためにトリムすると、長さが0かどうかをテストできます。したがって、空白のみで構成される入力はファイル名として使用されず、デフォルトで使用されます。あなたはそのようにこれを適用することができます。

File file = new File(filename.trim().isEmpty() ? "output.txt" : filename); 

try {  
    file.createNewFile(); 
} catch(IOException ex) { 
    //file was not created successfully 
} 

これは、ユーザーが何も(空白は除外)を、入力された場合に基づいたファイル名を持つことになり、新たなFileオブジェクトを作成します。 file.createNewFile()はファイルが存在しない場合に作成します。

+0

これはどのようにしてユーザの入力を集めるのですか?以前はスキャナだったでしょうか? –

+0

@JarrodNobelユーザー入力を得るために以前に持っていたコードを使用してください... – Li357

+0

@AndrewLi私はそれを考え出しました。残りのコードと一緒に動作させるだけでした。 –

3

テスト。空文字列の場合は、デフォルトのファイル名を使用します。

文字列を「トリミングする」こともできます。先頭または末尾の空白文字を含むファイル名は、悪い考えです。あなたは、文字列が空の場合はドキュメントから、String#trimと接続詞にString#isEmptyで行うことができ、テストする必要が

+0

あなたがそれを行う方法を説明してもらえますか? –

+0

何を説明しますか?これらはすべてJava 101のタスクです。そして、もしあなたがそれらを行う方法を知る必要があれば、APIはそれらを行うための標準的なメソッドを提供するので** javadocs **( 'java.lang.String'のため)を参照するべきです。 (そして、探している過程で、他のコンテキストで使用できる他の便利なメソッドをString APIに発見することになります。) –

+0

ありがとう、Javaの初心者として、私は挑戦的に見ていきます。 –

0

これを達成するための条件が必要です。

おそらく、あなたはおそらく、このような簡単な方法が必要です。

isNotNullOrEmpty(filename) ? filename : defaultFileName; 

    private static boolean isNotNullOrEmpty(String str) { 
     return str != null && !str.isEmpty(); 
    } 
関連する問題