将String
"[1,2,3]"
转换为List<Long>
是否有一种不那么混乱的方法?我试图找到一些好的方法,但大多数步骤
答案 0 :(得分:5)
由于这是数组的JSON表示,因此您可以使用任何JSON api。
例如使用Jackson:
String s = "[1,2,3]";
long[] a = new ObjectMapper().reader(long[].class).readValue(s);
List<Long> l = new ObjectMapper().reader(List.class).readValue(s);
答案 1 :(得分:1)
一种巧妙的方法是
String s = "[1,2,3]"
s=s.sbustring(1,s.length-1);
List<Long> numLongs = new ArrayList<Long>();
for(String eachString: s.split(",")){
try {
numLongs.add(Long.parseLong(eachString))
} catch (NumberFormatException e){
System.out.println("failed to convert : "+s);
}
}
答案 2 :(得分:0)
怎么样?
String x = "[1,2,3]";
List<Long> myList = new ArrayList<>();
for(String s : x.substring(1,x.length()-1).split(",")) {
myList.add(Long.valueOf(s));
}
或
String x = "[1,2,3]";
List<Long> myList = new ArrayList<>();
for(String s : x.replaceAll("\\[|\\]","").split(",")) {
myList.add(Long.valueOf(s));
}
答案 3 :(得分:0)
这样做:
public static void main(String[] args) {
String str= "[1,2,3]";
String []arr=str.substring(1, str.length()-1).split(",");
List<Long>list=new ArrayList<Long>();
for(int i=0;i<arr.length;i++){
list.add(Long.parseLong(arr[i]));
}
System.out.println(list);
}
答案 4 :(得分:0)
在Java 8中
String str = "1,2,3";
String[] sp = str.split(",");
List<String> listSt = Arrays.asList(sp);
listSt.forEach(System.out::print);
List<Long> listLong = listSt.stream().map( str1 -> Long.parseLong(str1)).collect(Collectors.toList());
listLong.forEach(System.out::print);