例如,如果我有一個字符串"{1,2,3,4,5}"
我想從該字符串中獲取一個int []對象。如何在運行時從字符串表示創建Java對象
我看了一下Janino和Beanshell,但似乎無法找到正確的方法讓他們爲我做這件事。
我正在尋找一種通用解決方案,一種適用於所有類型的解決方案 - 不僅是整數數組。
例如,如果我有一個字符串"{1,2,3,4,5}"
我想從該字符串中獲取一個int []對象。如何在運行時從字符串表示創建Java對象
我看了一下Janino和Beanshell,但似乎無法找到正確的方法讓他們爲我做這件事。
我正在尋找一種通用解決方案,一種適用於所有類型的解決方案 - 不僅是整數數組。
更好使用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 ...
看看https://stackoverflow.com/a/2605050/1458047
答案提出了幾個選項。
什麼是字符串的格式? JSON? 'toString'? –
只是一個普通的Java字符串,包含諸如「{1,2,3}」,「1」,「Stackoverflow」等等。 – Mellson
這是一個*不同的問題,因爲現在您要求將基本上任意的字符串轉換爲顯然是任意的Java對象。你真的想做什麼? –