Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
试图在JAVA中解析字符串_Java - Fatal编程技术网

试图在JAVA中解析字符串

试图在JAVA中解析字符串,java,Java,嘿,伙计,我正试图解析这个巨大的文本,以获取我想要的东西,如描述id、图标等,但我似乎无法获取其余的内容。我正在尝试获取图标,但一直告诉我: Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -18 at java.lang.String.substring(String.java:1954) at com.company.Main.main(Main.

嘿,伙计,我正试图解析这个巨大的文本,以获取我想要的东西,如描述id、图标等,但我似乎无法获取其余的内容。我正在尝试获取图标,但一直告诉我:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -18
at java.lang.String.substring(String.java:1954)
at com.company.Main.main(Main.java:19)
我只想用这些东西得到iwd1D,任何帮助都是非常好的,谢谢

public static void main(String[] args) {
    String skill = "[{\"id\":\"16\",\"icon\":\"iwd1D\"ref\":\"aa\",\"mp\":\"0\",\"nam\":\"Auto attack\",\"anim\":\"Attack1,Attack2\",\"desc\":\"A basic attack, taught to all adventurers.\",\"isOK\":true,\"range\":\"301\",\"fx\":\"m\",\"damage\":1,\"auto\":true,\"tgt\":\"h\",\"typ\":\"aa\",\"dsrc\":\"AP2\",\"cd\":\"2000\"}";

    //Getting id which is 16 works fine
    int startID;
    startID = skill.indexOf("\"id\"") + 6;
    int endID = skill.indexOf(":\"", startID);
    String id = skill.substring(startID, endID - startID);
    System.out.println(id);

    //Getting icon which is iwd1D can't seem to get it work
    int startICO;
    startICO = skill.indexOf(",\"icon\"") + 7;
    int endIcon = skill.indexOf(":\"", startICO);
    String icon = skill.substring(startICO, startICO - endIcon);
    System.out.println(icon);
  }
}
在这种情况下,startICO的值将大于startICO-endIcon


因此,StringIndexOutofBoundsException

请不要自己解析JSON。使用JSON解析器。你的答案刚刚起作用:那么你是说应该是endIcon-startIcon?请添加免责声明,告知OP使用JSON解析器
skill.substring(startICO, startICO - endIcon);