【问题标题】:How to Ignore the desired string during the split in Java?java - 如何在Java拆分期间忽略所需的字符串?
【发布时间】:2018-02-06 10:40:54
【问题描述】:

我有一个类似

的字符串
pchase_history:array<struct<pchase_channel:string,trans_dt:string,sku_id:string,sold_qty:bigint>>,first_pchase_dt:string,last_pchase_dt:string,trans_cnt:bigint,last_pchase_sku_cnt:bigint,no_of_pchase_days:bigint,lst_pchase_channel:array<struct<pchase_channel:string>>

我需要用','分割它,但不想分割(结构数组)array&lt;struct&lt;pchase_channel:string,trans_dt:string,sku_id:string,sold_qty:bigint&gt;&gt;
我希望 split 方法忽略这些结构数组并拆分字符串的其余部分。

我如何通过拆分方法实现这一点?

任何帮助将不胜感激。

【问题讨论】:

标签: java regex string


【解决方案1】:

您可以使用正则表达式替换您的结构数组 before 像这样进行拆分:

String value = "pchase_history:array<struct<pchase_channel:string,trans_dt:string,sku_id:string,sold_qty:bigint>>,first_pchase_dt:string,last_pchase_dt:string,trans_cnt:bigint,last_pchase_sku_cnt:bigint,no_of_pchase_days:bigint,lst_pchase_channel:array<struct<pchase_channel:string>>";

value = value.replaceAll("(array<struct<.*?>>)", "array");
String[] splitedValues = value.split(",");

System.out.println(Arrays.toString(splitedValues));

输出:

[pchase_history:array, first_pchase_dt:string, last_pchase_dt:string, trans_cnt:bigint, last_pchase_sku_cnt:bigint, no_of_pchase_days:bigint, lst_pchase_channel:array]

Click here to test regex online

【讨论】:

    猜你喜欢
    • 2013-04-18
    • 2012-03-28
    • 2011-06-19
    • 1970-01-01
    • 1970-01-01
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    相关资源
    最近更新 更多