Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 解析字符串以获取id号_Java_String - Fatal编程技术网

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);
                }
            }

        }