Java 向用户询问特定的文件名

Java 向用户询问特定的文件名,java,java.util.scanner,Java,Java.util.scanner,我想添加一行,用户需要在其中输入特定的文件名,如 “输入文件名:LongestWord.txt”然后输出LongestWord,但是如果用户没有输入特定的文件名,它会像“文件名不正确!”我应该使用什么循环?您可以使用if()else循环 主函数中可能的实现如下所示 import java.util.Scanner; import java.nio.file.Paths; import java.io.*; public class Chupapi{ public static void mai

我想添加一行,用户需要在其中输入特定的文件名,如 “输入文件名:LongestWord.txt”然后输出LongestWord,但是如果用户没有输入特定的文件名,它会像“文件名不正确!”我应该使用什么循环?

您可以使用
if()else循环

主函数中可能的实现如下所示

import java.util.Scanner;
import java.nio.file.Paths;
import java.io.*;

public class Chupapi{
public static void main(String [ ] args)throws FileNotFoundException{
    new Chupapi().getLongestWords();
}

public String getLongestWords() throws FileNotFoundException{
    String longWord = "";
    String current;
    Scanner scan = new Scanner(new File("/Users/user/Documents/PROGRAMMINGTXT/LongestWord.txt"));
    while (scan.hasNext()){
        current = scan.next();
        if ((current.length() > longWord.length()) && (!current.matches(".*\\d.*"))) {
            longWord = current;
        }
    }
    System.out.println("Longest word: "+longWord);
    longWord.replaceAll("[^a-zA-Z ]", "").split("\\s+");
    return longWord;
}
}
注: 要使文件名动态,可以将其设置为main函数之外的变量,并在getLongestWords()函数中使用该名称

  public static void main(String[] args) throws FileNotFoundException {

    final String correctFileName = "LongestWord.txt";
    Scanner scan = new Scanner(System.in);
    System.out.println("Enter the file name: " + correctFileName);
    String s = scan.nextLine();
    if (s.equals(correctFileName)) {
      new Chupapi().getLongestWords();
    } else {
      System.out.println("Filename incorrect!");
    }
  }
此外,这假设文件始终是路径
/Users/user/Documents/PROGRAMMINGTXT/

我使用了
if()else循环
,它以某种方式得到了我想要的结果。谢谢大家@OneCricketeer和@Tcheutchoua Steve

final String correctFileName = "LongestWord.txt";

main (){}
getLongestWords (){
...
Scanner scan = new Scanner(new File("/Users/user/Documents/PROGRAMMINGTXT/" + correctFileName));
...
}

你必须使用循环吗?您是否已经有一个请求文件名的代码?我有,但是它是C++的。
import java.util.Scanner;
import java.io.*;

public class Chupapi{
public static void main(String [ ] args)throws FileNotFoundException{
    new Chupapi().getLongestWords();
}

public String getLongestWords() throws FileNotFoundException{

    Scanner scanner = new Scanner (System.in);
    System.out.print("Enter the specific filename: ");
    String filename = scanner.next();
        String longWord = "";
        String current;
        Scanner scan = new Scanner(new File("/Users/glenn/Documents/PROGRAMMINGTXT/LongestWord.txt"));
        while (scan.hasNext()) {
            current = scan.next();
            if ((current.length() > longWord.length()) && (!current.matches(".*\\d.*"))) {
                longWord = current;
            }
        }
        if (filename.equals("LongestWord.txt")) {
            System.out.println("Pinakamahabang salita: " + longWord);
            longWord.replaceAll("[^a-zA-Z ]", "").split("\\s+");
            return longWord;
        }
     else {
            System.out.println("Incorrect filename!");
            return filename;
     }
}
}