这是我的代码。
public class Test {
public void main (String[] args) {
int a;
String b = "11343468/32145";
String c[] = b.split("");
for(int i=0; i<c.length; i++) {
if(c[i].equals("/")) {
a = i;
} else {a = 0;}
}
System.out.println(a);
}
我正在尝试在 String[] c
中查找 /
的索引。
但是打印a
时,eclipse说局部变量a可能还没有初始化。
我知道如果我将 System.out.println(a);
放入 if-else {}
中,我可以打印 a
,但是我还有更多工作要做,因此我必须在 if-else
之外使用打印代码。
我使用了else
代码,但仍然有错误。有什么问题吗?
最佳答案
就像评论中已经提到的那样,编译器的分析还不够深入,无法保证 for 循环运行,因此该变量不是 "definitely assigned" as required by the language .
要查找字符串中字符的索引,不需要 for 循环或 if 语句。您可以只使用 indexOf
方法:
String b = "11343468/32145";
int a = b.indexOf('/');
关于java - if-else 中的局部变量初始化问题(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60975802/