假设我只有一个字符串内容,如下所示

Input:
  FTX+AAA+++201707141009UTC'
  FTX+BBB+++201707141009UTC'
  FTX+CCC+++201707141009UTC?:??'
  PISCO US LTS;?:V.D??'
  SOUZA?:GB?:GB'
  FTX+ZZZ+++201707141009UTC'
Expected Output:
  Number of segments: 4

Input:
  FTX+AAA+++201707141009UTC'
  FTX+CCC+++201707141009UTC?:??'
  PISCO US LTS;?:V.D??'
  FTX+ZZZ+++201707141009UTC'
Expected Output:
  Number of segments: 3


基本上,当定界符'带有问号时,我想考虑同一行。行定界符为“

如何在Java中标记化并获取段数?

提前致谢。

最佳答案

您可以在正则表达式中使用否定式的后面:

String input = "FTX+AAA+++201707141009UTC'\n"
    + "  FTX+BBB+++201707141009UTC'\n"
    + "  FTX+CCC+++201707141009UTC?:??'\n"
    + "  PISCO US LTS;?:V.D??'  \n"
    + "  SOUZA?:GB?:GB'\n"
    + "  FTX+ZZZ+++201707141009UTC'";

String[] tokens = input.split("(?<!\\?)'\\s*");
System.out.println(tokens.length);



  4


但是,在第二个示例中,我希望有两个细分市场,而不是三个...

关于java - 如何在单拆分中使用和不使用分隔符来标记字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52630190/

10-11 19:34