java - 如何使用 Java 或 Groovy 删除字符串的一部分

标签 java groovy substring

我有字符串:

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/

相关文章:

java - 注入(inject)的实例变量在方面执行时为空

filreader 中的 java 子字符串 while

Perl - 在变量中查找多个子字符串?

arrays - 如何判断一个数组是否包含一个字符串

java - 如何使用Java API将数据插入数据库?

java - 尝试使用二维数组和用户输入来设置大小来创建单词搜索?

java - 拦截器中的链式 Action

grails - 如何将数据从一个grails应用程序发送到另一grails应用程序

jenkins - 作业 DSL 管道配置触发器

unit-testing - PageRenderer 在单元测试期间返回空对象