2016-06-14 88 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. 

相關問題