2017-09-20 34 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()]); 
相關問題