在这种情况下,如何按符号名称和日期拆分字符串

Paw*_*wan 3 java

我有这种格式的字符串

FUTSTKACC28-APR-2016

ACC是一个符号,28-APR-2016是一个到期日FUTSTK是预定义的单词

在这种情况下如何检索值符号和日期

例如,如何获得ACC

28-APR-2016

一些样本数据

FUTSTKACC26-MAY-2016
FUTSTKACC28-APR-2016
FUTSTKACC30-JUN-2016
FUTSTKADANIENT26-MAY-2016
FUTSTKADANIENT28-APR-2016
FUTSTKADANIENT30-JUN-2016
Run Code Online (Sandbox Code Playgroud)

Ell*_*sch 5

您有一个固定长度的前缀字和一个固定长度的日期.您可以删除前缀,然后使用日期中的11个字符从右侧获取子字符串.就像是,

String[] sample = { "FUTSTKACC26-MAY-2016", "FUTSTKACC28-APR-2016", 
        "FUTSTKACC30-JUN-2016", "FUTSTKADANIENT26-MAY-2016", 
        "FUTSTKADANIENT28-APR-2016", "FUTSTKADANIENT30-JUN-2016" };
String predefWord = "FUTSTK";
for (String input : sample) {
    if (input.startsWith(predefWord)) {
        input = input.substring(predefWord.length());
        // There are 11 characters in the date format
        String symbol = input.substring(0, input.length() - 11);
        String dateStr = input.substring(input.length() - 11);
        System.out.printf("symbol=%s, date=%s%n", symbol, dateStr);
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是

symbol=ACC, date=26-MAY-2016
symbol=ACC, date=28-APR-2016
symbol=ACC, date=30-JUN-2016
symbol=ADANIENT, date=26-MAY-2016
symbol=ADANIENT, date=28-APR-2016
symbol=ADANIENT, date=30-JUN-2016
Run Code Online (Sandbox Code Playgroud)