我是Java的新手。我正在编译一个基本的Java程序,我试图理解为什么。 (注意TextIO
类中的代码本书使用我学习简化IO过程中,我不相信这正是问题的)这里是我的代码:需要基础java程序的编译错误帮助
public class ProcessSales {
public static void main(String[] args) {
String ln;
String tmp;
int i;
int noval;
TextIO.readFile("sales.dat");
while (TextIO.eof() == false){
ln = TextIO.getln();
for (i = 0; i < ln.length(); i++) {
if (ln.charAt(i) == ':'){
tmp = ln.subString(i + 1);
}
} // end line for loop
try {
System.out.printf("%8.2f\n", Double(tmp.trim()));
}
catch (NumberFormatException e) {
noval++;
}
} // end of file while loop
System.out.printf("\nThere were a total of %d cities that didnt have data\n", noval);
} // end of main subroutine
} // end of ProcessSales class
编译错误我得到如下:
[[email protected] Exercises]$ javac ProcessSales.java
ProcessSales.java:15: cannot find symbol
symbol : method subString(int)
location: class java.lang.String
tmp = ln.subString(i + 1);
^
ProcessSales.java:20: cannot find symbol
symbol : method Double(java.lang.String)
location: class ProcessSales
System.out.printf("%8.2f\n", Double(tmp.trim()));
^
2 errors
伊夫声明ln
为String
对象。对于String
对象,subString
方法是java api中的直接方法。我不明白为什么我会收到cannot find symbol
编译错误,特别是如果它在错误下面列出方法签名和位置。
我将问题标记为homework,因为我正在编写一本教科书,而且我期待了解这个问题,而不是一个单一的解决方案。然而,这是自学,而不是任何实际课程的一部分(现在)。
我在做什么'Double'语句错了......我是否需要用'tmp.trim()'语句作为构造函数参数声明一个类型为'Double'的新对象? –
我认为这是最快的IVE曾收到回复...谢谢所有 –