عكس (تحليل الإخراج) من Arrays.toString(int[]) [مكررة]
-
19-08-2019 - |
سؤال
هذا السؤال لديه بالفعل إجابة هنا:
- تحويل السلسلة إلى مجموعة int في Java 9 إجابات
هل توجد في JDK أو Jakarta Commons (أو في أي مكان آخر) طريقة يمكنها تحليل مخرجات Arrays.toString، على الأقل للمصفوفات الصحيحة؟
int[] i = fromString(Arrays.toString(new int[] { 1, 2, 3} );
المحلول
من السهل جدًا القيام بذلك بنفسك:
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;
}
}
نصائح أخرى
عينة من fastjson، مكتبة JSON:
String s = Arrays.toString(new int[] { 1, 2, 3 });
Integer[] result = ((JSONArray) JSONArray.parse(s)).toArray(new Integer[] {});
عينة أخرى مع الجوافة:
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);
يمكنك أيضًا استخدام الانقسام/الانضمام من Apache Commons StringUtils
لا تنتمي إلى StackOverflow