Как создать объект Java из строкового представления во время выполнения
Например, если у меня есть строка "{1,2,3,4,5}"
Я хотел бы получить объект int[] из этой строки.
Я немного посмотрел на Джанино и Биншелл, но, похоже, не могу найти правильный способ заставить их сделать это для меня.
Я ищу общее решение, которое работает для всех типов - не только целочисленных массивов.
3 ответа
Лучше использовать Regular Expression
. Не обязательно, что ваш String
является Array
это может быть любой String
который содержит цифры.
String s="{1,2,3,4,5}";
Pattern p = Pattern.compile("-?\\d+");
Matcher m = p.matcher(s);
List<Integer> list=new ArrayList<Integer>();
while (m.find()) {
Integer num=new Integer(m.group());
list.add(num);
}
System.out.println(list);
Выход:
[1, 2, 3, 4, 5]
Выглядит для меня проблемой разбора. посмотрите на строковые методы:)
код может выглядеть так:
String s = "{1,2,3,4,5}"
String justIntegers = s.substring(1, s.length()-1);
LinkedList<Integer> l = new LinkedList();
for (String string: justIntegers.split(','))
l.add(Integer.valuesOf(string));
l.toArray();
Если вы используете строки для отправки / сохранения объектов, пожалуйста, используйте XML или JSON...
Посмотрите на /questions/20374572/est-li-v-java-funktsiya-eval/20374582#20374582
Ответ предлагает несколько вариантов.