从 ArrayList 查询字符串的一部分
Query a part of string from an ArrayList
我在 Java 中有以下 couchbase 查询以获取特定值的数组列表。
Statement statement = select("PlanningId").from(i(CouchbaseBucket.RangePlan.toString()))
.where(x("meta().id").like(s("PRODUCTOPTION%")).and(x("Status").eq(s("Ready"))));
String[] planningIDs = couchbaseRepository.getQueryResult(bucket, statement);
此 return 输出为:
[{"PlanningId":"PRODUCTPLANNING_666"}, {"PlanningId":"PRODUCTPLANNING_777"}]
我需要只有值的输出:
[{"PRODUCTPLANNING_666"}, {"PRODUCTPLANNING_777"}]
我无法使用子字符串或拆分来获取它。
我将如何实现这一目标?
谢谢
埃姆兰
如评论中所述,在每个查询中,如果返回的结果包含单个 String
,如:{"PlanningId":"PRODUCTPLANNING_666"}, {"PlanningId":"PRODUCTPLANNING_777"},....
,则仅提取 {"PRODUCTPLANNING_XXX"},...
所需部分的过程可以完成如下:
假设你有一个像
这样的字符串
String planningIds = {"PlanningId":"PRODUCTPLANNING_666"}, {"PlanningId":"PRODUCTPLANNING_777"},....{"PlanningId":"PRODUCTPLANNING_NNN"}
如果您想在单个 String
、
中捕获每个 {"PRODUCTPLANNING_XXX}
StringBuilder finalResult = new StringBuilder();
String[] results = allPlanningIds.split(",");
for(String eachPlanningId : results){
String[] resultPlanningIds = eachPlanningId.split(":");
if(resultPlanningIds.length != 2){
continue;
}
String result = "{" + resultPlanningIds[1];
finalResult = finalResult.append(result + ",");
}
System.out.println(finalResult);
或者如果您想将每个 {"PRODUCTPLANNING_XXX}
作为单独的 String
对象捕获在 ArrayList
中,在上面的代码片段中,将 StringBuilder finalResult = new StringBuilder();
更改为 List<String> finalResults = new ArrayList<>();
和
finalResult = finalResult.append(result + ",");
至 finalResults.add(result)
.
希望这就是您要找的。
注意:请检查String[] results
数组的结束/空条件。
我在 Java 中有以下 couchbase 查询以获取特定值的数组列表。
Statement statement = select("PlanningId").from(i(CouchbaseBucket.RangePlan.toString()))
.where(x("meta().id").like(s("PRODUCTOPTION%")).and(x("Status").eq(s("Ready"))));
String[] planningIDs = couchbaseRepository.getQueryResult(bucket, statement);
此 return 输出为:
[{"PlanningId":"PRODUCTPLANNING_666"}, {"PlanningId":"PRODUCTPLANNING_777"}]
我需要只有值的输出:
[{"PRODUCTPLANNING_666"}, {"PRODUCTPLANNING_777"}]
我无法使用子字符串或拆分来获取它。 我将如何实现这一目标?
谢谢 埃姆兰
如评论中所述,在每个查询中,如果返回的结果包含单个 String
,如:{"PlanningId":"PRODUCTPLANNING_666"}, {"PlanningId":"PRODUCTPLANNING_777"},....
,则仅提取 {"PRODUCTPLANNING_XXX"},...
所需部分的过程可以完成如下:
假设你有一个像
这样的字符串String planningIds = {"PlanningId":"PRODUCTPLANNING_666"}, {"PlanningId":"PRODUCTPLANNING_777"},....{"PlanningId":"PRODUCTPLANNING_NNN"}
如果您想在单个 String
、
{"PRODUCTPLANNING_XXX}
StringBuilder finalResult = new StringBuilder();
String[] results = allPlanningIds.split(",");
for(String eachPlanningId : results){
String[] resultPlanningIds = eachPlanningId.split(":");
if(resultPlanningIds.length != 2){
continue;
}
String result = "{" + resultPlanningIds[1];
finalResult = finalResult.append(result + ",");
}
System.out.println(finalResult);
或者如果您想将每个 {"PRODUCTPLANNING_XXX}
作为单独的 String
对象捕获在 ArrayList
中,在上面的代码片段中,将 StringBuilder finalResult = new StringBuilder();
更改为 List<String> finalResults = new ArrayList<>();
和
finalResult = finalResult.append(result + ",");
至 finalResults.add(result)
.
希望这就是您要找的。
注意:请检查String[] results
数组的结束/空条件。