2017-09-20 8 views
2

私はこの ような文字列を持っている[「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

操作を実行するための実際の 'string'を定義してください。 –

答えて

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"] これはあなたの文字列ですか?

YESの場合、uは、これは

ストリングstringWithoutBraces = mainstring.substring(1、mainstring.length() - 1)溶液でMYT、長い配列内のすべての要素を保存します。

 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()]); 
関連する問題