2015-09-20 108 views
1

我有這一點的代碼,但是我得到一個ArrayIndexOutofBoundException。我意識到split函數刪除所有空數組元素,但我相信如果我添加一個負限制,空數組元素將不會被刪除。話雖如此,inputString [3]仍然超出界限。我知道我可以創建另一個String []數組並複製inputString []中的值,然後將元素添加到我的新數組中,但我想知道是否有辦法停止拆分函數以放棄空數組元素。Java拆分丟棄空數組元素

public static String[] getData() { 
    String weightHeight = JOptionPane.showInputDialog("Enter your weight in pounds \nfollowed by a comma \nfollowed by your height in inches"); 
    String[] inputString = new String[4]; 
    inputString = weightHeight.split(",|\\'", -1); 
    if(inputString[2]!= null){ 
     inputString[3] = inputString[1]; 
    } 
    return inputString;  
+0

'new String [4]'丟失,split將返回另一個數組。 – laune

+0

因爲拆分函數會創建一個新數組。所以你預先確定數組大小爲4是不會在這裏實現的。而不是零檢查,我將使用inputString.length> 2檢查 – DhruvG

+0

if語句應該實現的是什麼? – laune

回答

0

希望這會對你有所幫助。我已經創建了一個合併函數來將split函數的輸出合併到你的inputString數組中。

private static void merge(String[] source, String[] dest) { 
    for(int i=0; i< dest.length && i< source.length; i++) { 
     dest[i] = source[i]; 
    } 
} 
public static String[] func(String[] args) { 
    String input = "150,5'6"; 
    String[] inputString = new String[4]; 
    merge(input.split(",|\\'", -1), inputString); 
    if(inputString[2]!= null){ 
     inputString[3] = inputString[1]; 
    } 

    return inputString;  


}