Java 拆分字符串输入包含基于逗号双引号和方括号的长数字
我有一根这样的绳子 [“1505213753057”、“1505213854042”、“1505537148455”] 我想将其拆分并将值存储到长数组中Java 拆分字符串输入包含基于逗号双引号和方括号的长数字,java,regex,string,Java,Regex,String,我有一根这样的绳子 [“1505213753057”、“1505213854042”、“1505537148455”] 我想将其拆分并将值存储到长数组中 String [] loanId = loanIds.split("\"?,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)\"?"); Long[] data = new Long[loanId.length]; for (int i = 0; i < loa
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]);
}
String[]loanId=loanIds.split(“\”?,(?=(?:(?:[^\“]*\”){2})*[^\“]*$)\”;
Long[]数据=新的Long[loanId.length];
for(int i=0;i
我正在使用此拆分器,但它不起作用。如何实现此目的有任何帮助吗?这应该可以
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]);
}
String loanIds=“[\“1505213753057\”,“150521385042\”,“1505537148455\”;
loanIds=loanIds.replaceAll(“(\\[\”)”、“).replaceAll(“\”、“,”);
字符串[]loanId=loanIds.split(“,”);
Long[]数据=新的Long[loanId.length];
for(int i=0;i
将[
和]
替换为{
和}
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]);
}
}
import java.util.*;
课堂检查{
公共静态void main(字符串ar[]){
字符串str[]={“1505213753057”、“150521385042”、“1505537148455”};
long ll[]=新的long[str.length];
对于(int i=0;i这可以使用正则表达式实现,如下所示:
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);
}
}
package com.grsdev.stackoverflow.question170920.pack01;
导入java.util.ArrayList;
导入java.util.Collections;
导入java.util.List;
导入java.util.regex.Matcher;
导入java.util.regex.Pattern;
公共类长字符串{
公共静态void main(字符串[]args){
字符串文本=“[\'1505213753057\”、\'150521385042\”、\'1505537148455\”;
Pattern=Pattern.compile(\\d+);
Matcher Matcher=pattern.Matcher(文本);
列表=新的ArrayList();
while(matcher.find()){
list.add(Long.valueOf(matcher.group());
}
System.out.println(“longs:+list”);
Long[]数组=新的Long[list.size()];
列表。toArray(数组);
}
}
mainstring=[“1505213753057”、“1505213854042”、“1505537148455”]
这是你的绳子吗
如果是,并且您希望在长数组中存储所有元素,那么这个myt就是解决方案
String StringwithoutBrages=mainstring.substring(1,mainstring.length()-1)
List loanidlist=new ArrayList();
String[]stringWithoutCommas=stringWithoutBraces.split(“,”);
for(字符串拆分:不带逗号的字符串){
String eachElement=splited.substring(1,splited.length()-1);
loanidlist.add(Long.parseLong(eachElement));
}
Long[]loanid=(Long[])loanidlist.toArray(新的Long[loanidlist.size());
看起来像JSON,为什么不试试JSON解析和parseLong呢?你能帮我一下吗?我看不懂。请定义你必须在其上执行操作的实际字符串。[“1505213753057”、“150521385042”、“1505537148455”]这是我在RestAPI中得到的字符串。我想将其存储到长数组中。它看起来像字符串数组
而不是字符串
。
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()]);