我的方法不能return一个值?
My method cannot return a value?
我写了一个方法,但是方法不能 return i
值。我能做什么?
public static int contain(String s1,String s2){ //I want wrote a method similar contain
if(s1.length() == s2.length() || s1.length() > s2.length()){
for(int i = 0; i < s1.length(); i++){
char s = s1.charAt(i);
String s3 = "s3+s";
if(s3.equals(s2)){
}
}
}
if(s2.length() > s1.length()){
System.out.println("-1");
}
return i;
}
int contains(String s1, String s2)
接收两个字符串,并且
检查 s2
是否区分大小写 s1
。如果 s2
在 s1
中,它 return 的索引
最后一次出现 s2
,否则为 returns -1。
为什么不起作用?
如您所见,variable i
仅存在于 for 循环内,因此您无法从外部访问它(它超出范围)。
在循环内部创建的任何变量都是循环的局部变量。这意味着一旦退出循环,就不能再访问该变量!这包括在循环签名中创建的任何变量。
阅读更多:http://www.java-made-easy.com/variable-scope.html#ixzz4QqXWdYAa
许多可能的解决方案之一:
public static int contain(String s1, String s2){
//local variable
int variable = 0;
if(s1.length() >= s2.length()){
for(int i = 0; i < s1.length(); i++){
variable = i;
char s = s1.charAt(i);
String s3 = "s3+s";
if(s3.equals(s2)){
//some code here
}
}
}else
System.out.println("-1");
//Return the local variable
return variable;
}
我写了一个方法,但是方法不能 return i
值。我能做什么?
public static int contain(String s1,String s2){ //I want wrote a method similar contain
if(s1.length() == s2.length() || s1.length() > s2.length()){
for(int i = 0; i < s1.length(); i++){
char s = s1.charAt(i);
String s3 = "s3+s";
if(s3.equals(s2)){
}
}
}
if(s2.length() > s1.length()){
System.out.println("-1");
}
return i;
}
int contains(String s1, String s2)
接收两个字符串,并且
检查 s2
是否区分大小写 s1
。如果 s2
在 s1
中,它 return 的索引
最后一次出现 s2
,否则为 returns -1。
为什么不起作用?
如您所见,variable i
仅存在于 for 循环内,因此您无法从外部访问它(它超出范围)。
在循环内部创建的任何变量都是循环的局部变量。这意味着一旦退出循环,就不能再访问该变量!这包括在循环签名中创建的任何变量。
阅读更多:http://www.java-made-easy.com/variable-scope.html#ixzz4QqXWdYAa
许多可能的解决方案之一:
public static int contain(String s1, String s2){
//local variable
int variable = 0;
if(s1.length() >= s2.length()){
for(int i = 0; i < s1.length(); i++){
variable = i;
char s = s1.charAt(i);
String s3 = "s3+s";
if(s3.equals(s2)){
//some code here
}
}
}else
System.out.println("-1");
//Return the local variable
return variable;
}