2009-01-19 12 views
15

JDK veya Jakarta Commons'ta (veya başka herhangi bir yerde) Arrays.toString çıktısını en azından tamsayı dizileri için ayrıştıran bir yöntem var mı?Geri (ayrıştırıldı) Arrays.toString (int [])

int[] i = fromString(Arrays.toString(new int[] { 1, 2, 3}); 

cevap

23

Oldukça kolay sadece kendiniz yapmak:

public class Test { 
    public static void main(String args[]){ 
    int[] i = fromString(Arrays.toString(new int[] { 1, 2, 3})); 
    } 

    private static int[] fromString(String string) { 
    String[] strings = string.replace("[", "").replace("]", "").split(", "); 
    int result[] = new int[strings.length]; 
    for (int i = 0; i < result.length; i++) { 
     result[i] = Integer.parseInt(strings[i]); 
    } 
    return result; 
    } 
} 
1

bir örnekten katılmak/bölünmüş kullanabilirsiniz JSON kütüphanesi:

String s = Arrays.toString(new int[] { 1, 2, 3 }); 
    Integer[] result = ((JSONArray) JSONArray.parse(s)).toArray(new Integer[] {}); 

Başka bir örnek ile guava:

String s = Arrays.toString(new int[] { 1, 2, 3 }); 
    Iterable<String> i = Splitter.on(",") 
     .trimResults(CharMatcher.WHITESPACE.or(CharMatcher.anyOf("[]"))).split(s); 
    Integer[] result = FluentIterable.from(i).transform(Ints.stringConverter()) 
     .toArray(Integer.class);