2016-06-14 183 views
0

我有几次这个错误,我找不到任何解决方案,我在这里读过其他问题,这是因为试图读取不存在的数组索引。 我无法找到问题,它只发生在我发送单引号字符串(这是一个完整的JSON,但我只发送该部分进行测试,它会抛出相同的错误,如果一个发送完整的单引号JSON),但如果我发送一个简单的字符串,如我的名字也不会给予任何问题,并把它打印像它应该ArrayIndexOutOfBoundsException:1错误

public class Parser { 

    public String x;  

    public static void main(String[] args) { 
     printLn("Hola!"); 
     String zxc; 
     zxc = ("'variable':[1,'Double']}"); 
     Parse(zxc); 
    } 
    public static void Parse(String chain){ 

     int len1 = chain.lastIndexOf("'variable':["); 
     int asd = len1+1; 
     String[] chainArr = new String[]{chain}; 
     printLn(chainArr[asd]); 


    } 

    public static void printLn(String cadena){ 
     System.out.println(cadena); 
    } 
    public static void printLn(String[] cadena){ 
     System.out.println(cadena); 
    } 
} 

编辑:错误日志说:

“线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException: 1 at comp.juan.Parser.Parse(Parser.java:18)at comp.juan.Parser.main( Parser.java:11)​​”

请:X

+0

分享您确切的错误日志.. !! –

+0

对不起,自从我把它放在标题以来完全忘了,我现在就去做 –

+0

你在这里试图达到的目标困惑我..但是当你做'chainArr [asd]','asd'大于'chainArr'你得到一个'ArrayIndexOutOfBoundException'。 ([ideone](https://ideone.com/i92RmX)发布代码) – 2016-06-14 04:55:36

回答

0

我同意@janki,现在,如果你的目的来解析JSON字符串,您可以修改代码如下也是:

public static void Parse(String chain){ 

    String result[] = chain.split(":"); 
    printLn(result[0]); 
    printLn(result[1]); 
} 

希望它可以帮助你写短代码相同目的。

4

这是因为你在你的字符串Array即在0th指数只有一个元素,但你要打印其他然后第0指数。我认为1st或更大的'0'排序。

您的代码:

String[] chainArr = new String[]{chain}; 
printLn(chainArr[asd]); 

将整个字符串转换'variable':[1,'Double']}在字符串数组。所以它会变成。

chainArr[0] = "'variable':[1,'Double']}"; 
+0

哦,非常感谢!这不是真正的问题,但很好知道新的东西!,我来自JavaScript,习惯了Java是有点粗糙,但它也退出。 –

+0

高兴地帮助你:) –

0

已经解决了这个问题,这要感谢Turo的评论,我真正打算在字符串中的特定位置获取角色。我使用indexOf()当我想要使用的是charAt()

indexOf会返回字符串中的字符位置,charAt会返回字符,该字符是我想要的。

0

我跟踪你的代码,为什么你有ArrayIndexOutOfBoundsException异常,请参阅以下..

int asd = len1+1; //asd =1 
    String[] chainArr = new String[]{chain}; 
    //String[0]='variable':[1,'Double']} 
    System.out.println(chainArr[asd]); //chainArr Array have only zero index.