這裏是您需要爲您的問題正則表達式:
(\d*,*)*
一個鏈接,這個表達式
這裏的explanation遵循Java方法來獲取數字的數組:
public static List<String []> getNumberArrays (String toBeProcessed){
List<String[]> listOfArrays = new ArrayList<String[]>();
Pattern p = Pattern.compile("(\\d*,*)*");
Matcher m = p.matcher(toBeProcessed);
while(m.find()){
String[] a ;
a =m.group(0).split(",");
// next statement for avoiding the printing of empty arrays
if(a.length>=2)
listOfArrays.add(a);
}
return listOfArrays;
}
測試代碼:
String x = "[23,22,17][17,2][23][3,29][][10,43,6][7][32,17,6][][][23,49,12][14,40,15][34,41,32][4,7,19][9,27][17][31,36,45][][32][40,27,25]" ;
List<String[]> listOfArrays = new ArrayList<String[]>();
listOfArrays = getNumberArrays(x);
for(String[] a :listOfArrays){
System.out.println(Arrays.toString(a));
}
輸出:
[23, 22, 17]
[17, 2]
[3, 29]
[10, 43, 6]
[32, 17, 6]
[23, 49, 12]
[14, 40, 15]
[34, 41, 32]
[4, 7, 19]
[9, 27]
[31, 36, 45]
[40, 27, 25]
'listAdress.get(0)是字符串「[23,22,17]」'? – Kent 2014-12-18 22:40:54
'^ [\,\ [\]]?(([0-9] *)[\,\ [\]] *)*?$' – Jason 2014-12-18 22:46:13
對於第一個問題,我收到錯誤: 'java.lang。 IndexOutOfBoundsException:索引:0,大小:0' 而第二個不給我我想要的 – 2014-12-18 22:49:56