Java 解析字符串以获取id号
我的输入Java 解析字符串以获取id号,java,string,Java,String,我的输入字符串如下所示 {“string name”=hi;“id”=44401234;“string name”=hey;“id”=87695432….} 我只希望ID作为输出,比如,{44401234 87695432} for(int i=0;i<input.length();i++) { int index=input.indexOf("id"); hh=input.substring(
字符串
如下所示
{“string name”=hi;“id”=44401234;“string name”=hey;“id”=87695432….}
我只希望ID作为输出,比如,{44401234 87695432}
for(int i=0;i<input.length();i++)
{
int index=input.indexOf("id");
hh=input.substring(index+4,index+12);
System.out.println(hh);
}
for(inti=0;i下面的代码使用Regex来获取与id关联的值
试一试
你能改进代码吗首先用;
拆分字符串,然后用=
拆分字符串,应该可以帮助你轻松地做到这一点nts每次都使用相同的id这是因为您使用的是indexOf(“id”)
,这将始终为您提供id
的第一个索引。我需要为模式和匹配导入什么库更新代码,不需要外部库他的名称中可以包含数字吗?是的,正则表达式将只匹配与“id”匹配的字符串=并后跟8位数字。我的代码在不打印任何输出的情况下终止
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
String input = "{\"string name\"=hi;\"id\"=44401234;\"string name\"=hey;\"id\"=87695432.....}";
Pattern pattern = Pattern.compile("\"id\"=[0-9]{8}");
Matcher m = pattern.matcher(input);
while (m.find()) {
String str = m.group();
str = str.replace("\"id\"=", "");
System.out.println(str);
}
}
}