2017-09-20 35 views
2

我有这样 一个String [“1505213753057”,“1505213854042”,“1505537148455”]分割字符串输入包含基于逗号双引号长数字和支架

我想分割它和值存储到长阵列。

String [] loanId = loanIds.split("\"?,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)\"?"); 
       Long[] data = new Long[loanId.length]; 
       for (int i = 0; i < loanId.length; i++) { 
        data[i] = Long.parseLong(loanId[i]); 
       } 

我正在使用这个分离器,但它不工作。任何帮助如何实现这一目标?

+1

看起来像JSON,你为什么不试试JSON解析和parseLong? – Mritunjay

+0

你能帮我吗?我无法理解它。 – Garima

+0

请定义您需要执行操作的实际“字符串”。 –

回答

1

这应该工作

String loanIds = "[\"1505213753057\",\"1505213854042\",\"1505537148455\"]"; 

loanIds = loanIds.replaceAll("(\\[\")|(\"\\])", "").replaceAll("\",\"", ","); 
String [] loanId = loanIds.split(","); 
Long[] data = new Long[loanId.length]; 
for (int i = 0; i < loanId.length; i++) { 
    data[i] = Long.parseLong(loanId[i]); 
    System.out.println(data[i]); 
} 
+0

它工作!非常感谢!! – Garima

0

更换[]{}

import java.util.*; 
class check { 
    public static void main(String ar[]){ 
     String str[] ={"1505213753057","1505213854042","1505537148455"}; 
     long ll[]=new long[str.length]; 
     for(int i=0;i<str.length;i++) 
      ll[i]=Long.parseLong(str[i]); 
     for(int i=0;i<str.length;i++) 
      System.out.println(ll[i]); 
     } 
    } 
0

这是可以实现使用正则表达式如下所示:

package com.grsdev.stackoverflow.question170920.pack01; 

import java.util.ArrayList; 
import java.util.Collections; 
import java.util.List; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 


public class LongNumerString { 

    public static void main(String[] args) { 


     String text="[\"1505213753057\",\"1505213854042\",\"1505537148455\"]"; 

     Pattern pattern=Pattern.compile("\\d+"); 

     Matcher matcher = pattern.matcher(text); 


     List<Long> list=new ArrayList<>(); 

     while(matcher.find()){ 
      list.add(Long.valueOf(matcher.group())); 
     } 


     System.out.println("longs : "+list); 



     Long [] array = new Long[list.size()]; 

     list.toArray(array); 
    } 

} 
0

mainstring = “1505213753057”, “1505213854042”, “1505537148455”] 这是您的字符串?

如果是和u要存储在长数组的所有元素,则这是MYT溶液

字符串stringWithoutBraces = mainstring.substring(1,mainstring.length() - 1);

 List<Long> loanidlist=new ArrayList<>(); 
     String[] stringWithoutCommas=stringWithoutBraces.split(","); 

     for(String splited:stringWithoutCommas){ 
      String eachElement=splited.substring(1,splited.length()-1); 
      loanidlist.add(Long.parseLong(eachElement)); 
     } 
     Long[] loanid=(Long[]) loanidlist.toArray(new Long[loanidlist.size()]); 
相关问题