Как создать объект 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

Ответ предлагает несколько вариантов.

Другие вопросы по тегам