Java 找不到符号字符(int)?

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) {

有人能告诉我我做错了什么吗

我正在尝试访问一个地图,并将以字母“N”开头的键放入一个数组中。但是,我遇到了一个“找不到”符号错误,指的是
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);