簡體   English   中英

在具有相同特殊字符的多個子字符串中分割復雜字符串

[英]Split complex string within a muliple sub string with same special character

我正在嘗試使用帶有多個子字符串的分號來解析字符串,這是示例

String temp = "SIM1_TM_4G3G2G_DE;ANY_RAT;TCNAME_Flight_Mode_Toggle;TIME_60;120;90;30"

所需的預期輸出將是僅顯示TIME_之后的TIME_

60
120
90
30

我嘗試了以下代碼,但沒有滿足以下需求

String[] args_val=temp.split(";");


log("STARTING THE LOOP");
for(int ix=0; ix<args_val.length;ix++)
{
    log("args_val["+ix+"]-" +args_val[ix]);
    //TIME is considered in seconds
    if(args_val[ix].contains(TIME"))
    {   
        log("args_val[ix] length -" +args_val[ix].length());
        String sTime = args_val[ix].substring(args_val[ix].indexOf("TIME_") +5, args_val[ix].length());
        log("print sTime-" +sTime);                 
    }

}

嘗試這個:

String output = temp.substring(temp.indexOf("TIME_") + 5)
                    .replaceAll(";", "");

您可以刪除所有從開始直到並包括子;TIME_.*;TIME_正則表達式(請注意, .*是一個貪婪的點匹配模式,並從字符串到最后開始匹配;TIME_就行了) ,然后將其余的與;

String temp = "SIM1_TM_4G3G2G_DE;ANY_RAT;TCNAME_Flight_Mode_Toggle;TIME_60;120;90;30";
String[] res = temp.replaceFirst(".*;TIME_", "").split(";");
System.out.println(res[0]);
System.out.println(res[1]);
System.out.println(res[2]);
System.out.println(res[3]);

參見Java演示

如果您提到的字符串始終采用這種格式,則此方法將起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM