我有字符串:
John Smith [birth. 1970-07-05] [Doctor degree from 2016-01-01]
我需要通过仅删除字符串的中间部分出生日期部分(在我的情况下[birth.1970-07-05]
)来修改此字符串,留下其他位:名字、姓氏和博士学位。
在JasperReports中,只允许输入所谓的“文本字段表达式”,所以我想出了这个:
$P{AUTHOR}.indexOf("[") < 0 ? $P{AUTHOR} : $P{AUTHOR}.substring(0,$P{AUTHOR}.indexOf("[")-1)
它一直有效,直到该人没有任何学位为止,因此它仅删除出生日期,但是当出现学位时,它也会删除学位。
我缺少的东西。
最佳答案
你可以试试这个:
$P{AUTHOR}.indexOf("[") < 0
? $P{AUTHOR}
: $P{AUTHOR}.substring(0,$P{AUTHOR}.indexOf("["))
+ ($P{AUTHOR}.indexOf("[", $P{AUTHOR}.indexOf("[") + 1) > -1
? $P{AUTHOR}.substring( $P{AUTHOR}.indexOf("[", $P{AUTHOR}.indexOf("[") + 1))
: "")
关于java - 如何使用 Java 或 Groovy 删除字符串的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36573982/