【发布时间】:2018-02-01 18:27:49
【问题描述】:
所以在这个程序中,用户可以创建/指定一个目录并创建一个文件,前提是该文件尚不存在。当用户输入文件名时,他们也需要输入文件扩展名。我遇到的问题是如何让代码在用户输入的字符串末尾查找文件扩展名。我什至检查了一个“。”但我被困在程序可以查看文件是否有 .json 或 .txt 或“。”之后的任何内容的方式上。
TL;DR 如何使代码检查用户输入的字符串末尾的文件扩展名(
请注意,下面的代码还没有完成,我卡住的条件里面有注释。
package filecreator.coolversion;
import java.io.File;
import java.io.IOException;
import java.util.*;
public class FileCreatorCoolversion {
public static Scanner sc = new Scanner(System.in);
public static boolean success = false;
public static String filename;
public static String filedir;
public static File file;
public static File dir;
public static void main(String[] args) throws IOException {
System.out.println("********************************");
System.out.println("* Welcome to File Creator 2.0! *");
System.out.println("********************************");
System.out.println(" ");
while(!success) {
System.out.println("Would you like to create a file? Y/N?");
String usrans = sc.nextLine();
if(usrans.equalsIgnoreCase("y")) {
System.out.println("Proceeding with file creation...");
break;
} else if(usrans.equalsIgnoreCase("n")) {
System.out.println("Exiting Program...");
System.exit(0);
} else if(!usrans.equalsIgnoreCase("y") || !usrans.equalsIgnoreCase("n")) {
System.out.println("That is not a valid answer! Please try again!");
System.out.println(" ");
}
}
while(!success) {
System.out.println(" ");
System.out.println("Please enter a valid filename:");
filename = sc.nextLine();
if(filename.isEmpty()) {
System.out.println("Please enter a file name!");
break;
} else if(filename.contains("/") || filename.contains(":") ||
filename.contains("*") || filename.contains("?") ||
filename.contains("<") || filename.contains(">") ||
filename.contains("|") || filename.contains("\"") ||
filename.contains("\\")) {
System.out.println("Please do not include / \\ : * ? \" < > |");
} else if(!filename.contains(".")) {
System.out.println("Please add a apropriate file extensions");
} else if (filename.) {
//HERE IS WHERE IM STUCK
} else {
System.out.println(" ");
System.out.println("File name \"" + filename + "\" chosen");
break;
}
}
System.out.println(" ");
System.out.println("Where would you like to have your file saved?");
System.out.println("Please enter a valid directory");
while(!success) {
filedir = sc.nextLine();
if(!filename.contains(":")) {
System.out.println(" ");
System.out.println("Please enter a valid directory!");
} else if(!filename.contains("\\")) {
System.out.println(" ");
System.out.println("Please enter a valid directory!");
} else {
System.out.println("File directory \"" + filedir + "\" chosen");
break;
}
}
System.out.println(" ");
System.out.println("Creating file...");
}
}
【问题讨论】:
-
你输入的文件名可以像
file.name.ext吗? -
据我了解,您想检查用户输入的任何扩展名吗?
-
如
filename.endsWith(".json")?还是一组特定的扩展之一?或者任何非空扩展? -
@Gusti Arya 是的
-
@AJNeufeld 任何非空扩展