问问题
134 次
4 回答
2
我认为问题出在构造函数中
f1.toString()
当你需要做的时候
f1.getName()
加上你的类名已经存在于java中,尝试MyFile
使用
最后你想用
public void toString(File f1)
或者
public void extString(File f1)
代替
public void String(File f1)
它甚至在编译吗?
于 2013-09-01T12:03:05.047 回答
0
您可以使用正则表达式来提取扩展名:
public String getExtension() {
if (!fileName.contains("."))
return "unknown extension";
return fileName.replaceAll(".*\\.([^.]*)", "$1");
}
尽管这似乎是一种好奇心,但老实说,这就是我的编码方式。
于 2013-09-01T12:25:47.970 回答
0
public void String(File f1){
不是有效的构造函数,这是一个不返回任何内容的简单方法。
该toString()
方法也没有重载,因此它将使用不是文件名的默认实现。
int lastDot = f1.fileName.lastIndexOf(".");
if (lastDot >= 1) { System.out.println( f1.subString(lastDot); }
如果有扩展名,会告诉您扩展名从哪里开始,并将打印出扩展名。
您发布的所有其他明智的代码都是不正确的,只是噪音。
于 2013-09-01T12:03:24.847 回答
0
我认为你有一个问题被转载-错误的方法/构造函数名称。
对于分机:
字符串有lastIndexOf,用那个?5行:
String getExtn()
int i = fileName.lastIndexOf(".");//can use last index of character too
String extn = “unknown extension”;
if(i > -1 ){
extn = fileName.subString(i + 1) ;
}
return extn;
}
一个边缘情况是点是最后一个字符 - 然后你应该得到一个空的搅拌,可以通过检查 i < fileName len 来做其他事情
于 2013-09-01T14:02:35.710 回答