为啥我一直收到“我无法解析为变量”[重复]
Posted
技术标签:
【中文标题】为啥我一直收到“我无法解析为变量”[重复]【英文标题】:Why do I keep receiving "i cannot be resolved to a variable" [duplicate]为什么我一直收到“我无法解析为变量”[重复] 【发布时间】:2021-11-06 12:50:20 【问题描述】:import java.util.Arrays;
import java.util.ArrayList;
import java.util.List;
public class FindDuplicates
public static void main(String[] args)
String StringLetters = "aaabbbccc";
List<String> NewList = new ArrayList<String>(Arrays.asList(StringLetters.split(",")));
// System.out.print(NewList);
// System.out.print(NewList.size());
char CharA = 'a';
int count = 0;
for(int i = 0; i < NewList.size(); i++);
if (NewList.indexOf(i) == CharA);
System.out.print(i);
我正在构建一个计算 Java 字符串中重复值的程序。但是,即使它在 for 循环中初始化,我也会收到“我无法解析为变量”?任何指导表示赞赏。
【问题讨论】:
不,这不是因为你的循环体是空的,而下一部分只是一个范围块!其原因是额外的;
潜入循环的)
和
之间。 (顺便说一下,你的if
也有同样的问题。)
【参考方案1】:
for(int i = 0; i < NewList.size(); i++);
最后的分号包含循环时要做的事情块。换句话说,你的 for 循环什么都不做。
然后你有一个,它只是开始一个块。这是合法的java。试试看:
public void test()
int x = 5;
// let's just start a block for no reason
System.out.println(x);
编译和运行都很好。
i
存在于其范围内(这是您的 for
声明的 3 个部分,如在 ()
内和 for 循环体中,在您的情况下只是半-冒号),之后不再存在。 在这里算作“之后”。
解决方法:去掉分号。
【讨论】:
【参考方案2】:删除for(int i = 0; i < NewList.size(); i++);
行中的;
。
这实际上使得 i
仅在 for(int i = 0; i < NewList.size(); i++);
内部定义,而它在内部没有定义
if (NewList.indexOf(i) == CharA);
System.out.print(i);
阻止
【讨论】:
以上是关于为啥我一直收到“我无法解析为变量”[重复]的主要内容,如果未能解决你的问题,请参考以下文章
为啥我会收到“无法解析符号 'CreatePerOwinContext'”?
为啥我收到此错误“ValueError:无法从重复轴重新索引”?
为啥我在 ReSharper 中收到错误“无法解析符号 <symbolname>”?
为啥我的代码没有像这里那样将给定的字符串解析为 xml?它不是重复的,因为我也使用了现有答案的帮助,但无法纠正它[重复]