繁体   English   中英

从字符串中检索数据

[英]Retrieve data from a String

我有这个来自表单的字符串:

   String tmp = "Reason: decision=deny&denyReason=1&denyReasonSubcategory=PoorQuality&subCategoryComments=testsubCategoryComments=subCategoryComments=denyReasonSubcategory=ReviewAgainsubCategoryComments=hellosubCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryComments=subCategoryCommen=&subCategoryComments=&subCategoryComments=&subCategoryComments=&subCategoryComments=";

从上面的字符串中我需要检索:

 denyReason=1
 denyReasonSubcategory=PoorQuality  subCategoryComments=test
 denyReasonSubcategory=ReviewAgain   subCategoryComments=hello

我需要将它们保存如下:

在一个数组中拒绝原因,所以我可以找到相应的值。

休息为:质量差:测试; 再次回顾:你好

我试过以下:

          for (String word : tmp.split("\\&+")){
           if (word.contains("declineReason")){
                System.out.println(word.indexOf("declineReason"));
            // coming as 0
           }
          if (word.contains("declineReasonSubcategory")){
                System.out.println("helloo");
          }
          if (word.contains("subCategoryComments")){
                System.out.println("hii");
          } 
         }
        }

老实说,我已经很久没有像这样处理字符串了,而且对如何获取数据几乎没有迷失。

我会使用扫描仪来提取值。
一台扫描仪提取对。 另一个扫描器来提取该对的值。

看:

import java.util.*;
public class Main{
    public static void main(String[] args) {
      String tmp = "Reason: decision=deny&denyReason=1&denyReasonSubcategory=PoorQuality&subCategoryComments=testsubCategory";
      Scanner s = new Scanner(tmp).useDelimiter("\\&");
      while(s.hasNext()){
         Scanner s2 = new Scanner(s.next()).useDelimiter("=");
         System.out.println(s2.next() + ":" + s2.next());
      }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM