我有一个字符串
String arr= "[1,2]";
Run Code Online (Sandbox Code Playgroud)
即"[1,2]"就像一个字符串
如何在java中将此arr转换为int数组
Sau*_*aul 88
String arr = "[1,2]";
String[] items = arr.replaceAll("\\[", "").replaceAll("\\]", "").replaceAll("\\s", "").split(",");
int[] results = new int[items.length];
for (int i = 0; i < items.length; i++) {
try {
results[i] = Integer.parseInt(items[i]);
} catch (NumberFormatException nfe) {
//NOTE: write something here if you need to recover from formatting errors
};
}
Run Code Online (Sandbox Code Playgroud)
Jef*_*oom 49
使用Java 8的流库,我们可以使它成为一个单行(尽管很长):
String str = "[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]";
int[] arr = Arrays.stream(str.substring(1, str.length()-1).split(","))
.map(String::trim).mapToInt(Integer::parseInt).toArray();
System.out.println(Arrays.toString(arr));
Run Code Online (Sandbox Code Playgroud)
substring
删除括号,split
分隔数组元素,trim
删除数字周围的任何空格,parseInt
解析每个数字,然后将结果转储到数组中.我已经包括trim
使这个的倒数Arrays.toString(int[])
,但是这也将解析字符串没有空格,如问题.如果您只需要解析字符串Arrays.toString
,则可以省略trim
并使用split(", ")
(注意空格).
Mar*_*lin 16
final String[] strings = {"1", "2"};
final int[] ints = new int[strings.length];
for (int i=0; i < strings.length; i++) {
ints[i] = Integer.parseInt(strings[i]);
}
Run Code Online (Sandbox Code Playgroud)
它看起来像JSON - 它可能有点过分,取决于具体情况,但您可以考虑使用JSON库(例如http://json.org/java/)来解析它:
String arr = "[1,2]";
JSONArray jsonArray = (JSONArray) new JSONObject(new JSONTokener("{data:"+arr+"}")).get("data");
int[] outArr = new int[jsonArray.length()];
for(int i=0; i<jsonArray.length(); i++) {
outArr[i] = jsonArray.getInt(i);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
270843 次 |
最近记录: |