Java 尝试提取用户输入并返回文件扩展名
因此,我尝试使用扩展名为.txt或.html的用户输入,但我不确定是否可以像Python一样在Java中进行字符串切片。我能得到一些帮助吗?我试图理解这个概念,而不仅仅是得到一个简单的答案Java 尝试提取用户输入并返回文件扩展名,java,output,Java,Output,因此,我尝试使用扩展名为.txt或.html的用户输入,但我不确定是否可以像Python一样在Java中进行字符串切片。我能得到一些帮助吗?我试图理解这个概念,而不仅仅是得到一个简单的答案 import java.util.Scanner; public class FileReader { public static void main(String[] args) { Scanner keyboard = new Scanner(System.in); Sy
import java.util.Scanner;
public class FileReader {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Please enter a file name and its extension!");
String fileName = keyboard.next();
System.out.println(fileName);
String[] parts = fileName.split("");
String ext = parts[0];
}
/* ADD YOUR CODE HERE */
}
尝试在
上拆分:
String[] parts = fileName.split("\\.");
String ext = parts[1]; // the extension will be the second part
但最好使用以下两个部分进行测试:
if (parts.length > 1) {
ext = parts[1];
}
else {
ext = "No extension";
}
如果希望在常规文件名中支持点,请使用以下方法:
if (parts.length > 1) {
ext = parts[parts.length - 1];
}
else {
ext = "No extension";
}
尝试在
上拆分:
String[] parts = fileName.split("\\.");
String ext = parts[1]; // the extension will be the second part
但最好使用以下两个部分进行测试:
if (parts.length > 1) {
ext = parts[1];
}
else {
ext = "No extension";
}
如果希望在常规文件名中支持点,请使用以下方法:
if (parts.length > 1) {
ext = parts[parts.length - 1];
}
else {
ext = "No extension";
}
您还可以与以下内容一起使用:
如果不存在扩展名,则此代码段将返回空字符串。否则,它将返回它认为是扩展的内容
下面是另一个使用正则表达式的聪明方法:
String filename = "some.file.name.txt";
String ext = filename.indexOf(".") > 0 ? filename.replaceAll("^.*\\.(\\w+)$", "$1") : "";
正则表达式中的*
将贪婪地使用,直到到达最终扩展(如果存在的话),并且它将只保留这个最终扩展。您可以在此处浏览此正则表达式:
您还可以与以下内容一起使用:
如果不存在扩展名,则此代码段将返回空字符串。否则,它将返回它认为是扩展的内容
下面是另一个使用正则表达式的聪明方法:
String filename = "some.file.name.txt";
String ext = filename.indexOf(".") > 0 ? filename.replaceAll("^.*\\.(\\w+)$", "$1") : "";
正则表达式中的*
将贪婪地使用,直到到达最终扩展(如果存在的话),并且它将只保留这个最终扩展。您可以在此处浏览此正则表达式:
不用提我;P.不必提及我;请留下一些反馈。我们在生产中使用这种方法。我不是下选者,但您可能希望像或避免重新发明轮子一样使用现有的LIB。请留下一些反馈。我们在生产中使用这种方法。我不是下选者,但您可能希望使用现有的LIB,比如或避免重新发明轮子。Dupe:Dupe: