Mic*_*alB 21 java string split file
我试图获取File没有扩展名的对象的名称,例如当文件名为"vegetation.txt"时获取"植被".我试过实现这段代码:
openFile = fileChooser.getSelectedFile();
String[] tokens = openFile.getName().split(".");
String name = tokens[0];
不幸的是,它返回一个null对象.String我想,在定义对象时会出现问题,因为该方法getName()正常工作; 它给我带有扩展名的文件名.  
你有什么主意吗?
Ste*_*n C 40
如果您想自己实现,请尝试以下方法:
String name = file.getName();
int pos = name.lastIndexOf(".");
if (pos > 0) {
    name = name.substring(0, pos);
}
(此变体不会为输入文件名(如".txt")留下空字符串.如果您希望字符串在这种情况下为空,请更改> 0为>= 0.)
if如果您认为它使您的代码更具可读性,则可以使用条件表达式将赋值替换为赋值; 比如@ Steven的回答.(我不认为它......但这是一个意见问题.)
使用其他人编写和测试的实现可能是更好的主意.Apache FilenameUtils是个不错的选择; 请参阅@ slachnick的答案,以及链接的问答.
sla*_*ick 20
如果您不想自己编写此代码,可以使用Apache的FilenameUtils.
FilenameUtils.getBaseName(openFile.getName());
这将返回文件名减去路径和扩展名.
我更喜欢在"."的最后一个索引之前砍掉.是文件名.这样一个文件名:hello.test.txt就是hello.test
即
int pos = filename.lastIndexOf(".");
String justName = pos > 0 ? filename.substring(0, pos) : filename;
你需要处理没有扩展.
| 归档时间: | 
 | 
| 查看次数: | 78572 次 | 
| 最近记录: |