2012-06-18 3 views
0

Например, если у меня есть строка "{1,2,3,4,5}" Я хотел бы получить объект int [] из этой строки.Как создать объект Java из строкового представления во время выполнения

Я немного поглядел на Янино и Бобы, но, похоже, не нашел правильного способа заставить их сделать это для меня.

Я ищу универсальное решение, которое работает для всех типов - не только целых массивов.

+0

Что такое формат строки? JSON? 'ToString'? –

+0

Просто нормальная строка Java, содержащая что-то вроде «{1,2,3}», «1», «Stackoverflow» и т. Д. – Mellson

+1

Это * другой вопрос, так как теперь вы спрашиваете о преобразовании практически произвольной строки в, по-видимому, произвольные объекты Java. Что вы на самом деле пытаетесь сделать? –

ответ

2

Лучше использовать 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] 
+0

да, вы совершенно правы, но я думал, что мой путь для новичка проще ... – headgrowe

+1

Это правда, но он просит общий способ, так что вот оно – amicngh

2

выглядит как проблема синтаксиса для меня. посмотреть на строковые методы :)

код может выглядеть следующим образом:

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(); 

если вы используете строки для отправки/сохранить объекты Pls использовать XML или JSON ...

+0

Спасибо за усилия, которые будут работать, если все, что я получаю, это целые массивы. Однако я хотел бы получить общее решение. – Mellson

+2

для универсального решения, используйте «XStream», это java-lib для преобразования объектов Java в xml-строки и обратно ... только 1 строка кода каждый ... очень полезно – headgrowe

+0

Спасибо, я попробую сразу – Mellson

Смежные вопросы