我有一个对话框,要求用户在其中放置带扩展名的文件名。例如,“MyJavaProject.java”。作为输出我只想检索点之后的内容(或“.java”作为示例)。我该怎么做呢?
答案 0 :(得分:1)
String input = JOptionPane.shoeMessageDialog(null,"Enter the file name");
String[] dev = input.split(".");
// this is to make sure you get the last string extension , if you have multiple dots just in case
String extension = dev[dev.length-1];
答案 1 :(得分:0)
final String fileExtension = ...;
final String afterPeriod = fileExtension.substring(fileExtension.lastIndexOf(".")+1);
答案 2 :(得分:0)
您可以将.split()
功能用作
String filename="m.txt";
String ext=filename.split(".")[1];
答案 3 :(得分:0)
这里的一个关键点是,当你在一个字符串上调用.split(“。”)时,你将结果存储在一个数组中,该数组使用提供的字符串作为分隔符。
因此得到的数组会产生:[MyJavaProject,Java] 因为数组是从零索引的,所以通过访问第一个元素[1],你将检索“Java”。
答案 4 :(得分:0)
lastIndexOf()和split()都是不错的答案,但如果用户输入了错误的输入,那么此问题的其他一些答案中提供的示例将无法正常工作。
例如,如果用户输入“some.bad.input.java”,split()[1]将无法正常工作,它将为您提供子字符串“bad”而不是“java”。如果你使用split(),那么你应该得到最后一个数组元素,而不是只假设元素1。
如果用户输入的字符串没有'。',则使用lastIndexOf()将无法正常工作。比如“somebadinput”,其中lastIndexOf()将返回-1,而substring(lastIndexOf()+ 1)将只提供用户输入的整个字符串。
无论您使用哪种方式,都需要在尝试获取子字符串之前验证用户输入。