Java 找不到符号字符(int)?
有人能告诉我我做错了什么吗 我正在尝试访问一个地图,并将以字母“N”开头的键放入一个数组中。但是,我遇到了一个“找不到”符号错误,指的是Java 找不到符号字符(int)?,java,arrays,maps,charat,Java,Arrays,Maps,Charat,有人能告诉我我做错了什么吗 我正在尝试访问一个地图,并将以字母“N”开头的键放入一个数组中。但是,我遇到了一个“找不到”符号错误,指的是charAt(int)?Intellij建议我为chartAt创建一个抽象类 import java.util.Map; public class RoadNetwork { String[] nodeList; public void storeNodes(Map<String, Element> result) {
charAt(int)
?Intellij建议我为chartAt
创建一个抽象类
import java.util.Map;
public class RoadNetwork {
String[] nodeList;
public void storeNodes(Map<String, Element> result) {
int counter =0;
nodeList = new String[result.size()];
//Cycle through Map to find elements which are Nodes
for (int i = 0; i < result.size(); i++) {
//if Node, then add it to array
if (result.get(i).charAt(0) == "N") {
nodeList[i] = String.valueOf(result.get(i));
counter++;
}
}
System.out.println("Nodes Array Length" + counter);
}
}
import java.util.Map;
公共级道路网{
字符串[]节点列表;
公共void存储节点(映射结果){
int计数器=0;
nodeList=新字符串[result.size()];
//在地图中循环查找作为节点的元素
对于(int i=0;i
问题似乎出在
if (result.get(i).charAt(0) == "N") {
可能是您想要检索键,但get()
方法返回值,该值的类型为元素
,没有方法charAt()
您可以尝试以下方法:
for (String key:result.keySet()) {
//if Node, then add it to array
if (key.charAt(0) == 'N') { //'N' and not "N"
nodeList[i] = String.valueOf(result.get(key));
counter++;
}
}
您的地图以键作为字符串,并且您正在第行中传递int if(result.get(i).charAt(0)=“N”){ 所以不是传递result.get(int)而是传递result.get(String) 要从N开始检查钥匙,请执行以下操作: int计数器=0; nodeList=新字符串[result.size()]
Element
没有charAt(int)
方法和结果。get(i)
当然返回值,而不是键。您还试图将charAt()
的结果与字符串文本“N”进行比较而不是字符文字>代码> 'N'/COD>。被否决的人也应该考虑评论原因。谢谢你的解决方案,这个当前的方法使我在NoDistist[i]中无效。。您对此有何建议?我已将计数器作为数组索引。非常感谢。映射通常不会排序。因此,您可以创建一个ArrayList
,而不是创建一个大小为result
的数组,并不断向其中添加不需要索引的元素。感谢您的方法,我喜欢更简单的语法,同时添加向数组中添加字符串。
//Cycle through Map to find elements which are Nodes
int i = 0;
//if Node, then add it to array
for(String key : result.keySet())
{
if (key.charAt(0) == 'N') {
nodeList[i] = key;
counter++;
}
}
System.out.println("Nodes Array Length" + counter);