public void set (String s){
int i = s.indexOf('x');
int y = i;
if(s.indexOf("=")>0 && s.indexOf("+")<s.indexOf("x") &&s.indexOf("-")<s.indexOf("x")){
y = s.indexOf("+")+1;
}
else if(s.indexOf("=") > 0){
y = s.indexOf("=")+1;
}
else if(s.indexOf("+")<i){
y = s.indexOf("+")+1;
}
else{
y = 0;
}
egimString = s.substring(y,i);
egimString = egimString.replace(" ","");
egim = egimString.toDouble();
}
这是我的set方法。
private double toDouble(){
int number = 0;
int digit = 1;
int n = 0;
for (int i = egimString.length() ; i>0 ; i--){
number = egimString.charAt(i-1) - '0';
n = n+number*digit;
digit = digit*10;
}
return (double)n;
}
这是我的toDouble方法。我在使用toDouble方法时遇到错误:找不到符号错误。 这是有问题的方法。 egim = egimString.toDouble();
Dogru.java:52: error: cannot find symbol
egim = egimString.toDouble();
^
symbol: method toDouble()
location: variable egimString of type String
1 error
这是完整的错误。
我的双重方法已经定义。我不知道为什么我会收到这个错误。他们都在同一个班级。
答案 0 :(得分:0)
您的function UrlExists(url, cb){
jQuery.ajax({
url: url,
dataType: 'text',
type: 'GET',
complete: function(xhr){
if(typeof cb === 'function')
cb.apply(this, [xhr.status]);
}
});
}
$.get('YOUR_URL_FILE.txt', function(data) {
// here I assume your data is this format:
// url1
// url2
// url3
var urls = data.split('\n');
urls.forEach(function(url) {
UrlExists(url, function(status){
if(status === 200){
// file was found
}
else if(status === 404){
// 404 not found
}
});
})
}, 'text');
变量类型为egimString
,而String
类没有String
方法。所以你不能使用toDouble
。
如果您想使用egimString.toDouble()
,则必须定义类似egimString.toDouble()
的类,该类扩展MyStringClass
类并将您的String
方法放在toDouble
类中。然后你应该像这样定义变量:
MyStringClass
可以使用这种逻辑。
答案 1 :(得分:0)
egimString
的类型为java.lang.String
,其中没有toDouble()
。您的toDouble()
无关。您应该为您的类定义一个变量。
实施例: 从你的代码中查看这一行
egimString = s.substring(y,i);
你调用方法substring(y,i)
,但你没有写一个。那么它定义在哪里?由于该方法与变量s
相关,因此编译器会查看s
的类型定义(它是java.lang.String
)并尝试查找名为substring
的方法。适当的签名(参数类型)。
与问题线相同。方法toDouble()
与变量egimString
相关,因此编译器会查找该变量的类型,并查找方法toDouble()
那里。要调用您的 toDouble()
,等效值为this.toDouble()