繁体   English   中英

如何在Java中删除句子的第一次和最后一次出现

[英]how do i remove first and last occurrence of the sentence in java

我有以下一行: |A|B|C|D|100|E|GEN|smsplus|11|11|11| 我想删除的首次和最后出现|

我必须先检查| first and last可用

我相信这会使我有些反对,但真的不知道该怎么做。

编辑

我还必须检查以下内容:

A|B|C|D|100|E|GEN|smsplus|11|11|11| and |A|B|C|D|100|E|GEN|smsplus|11|11|11 and there is no 

||可能性 这就是为什么我不想对此作任何解释。

感谢您的宝贵时间。

您也许可以使用正则表达式:

^\\|(.*)\\|$

并替换为$1

ideone演示

如果字符串的开头和结尾都不都是| ,将无法替代。

编辑:根据您的最后评论,如果要删除| 如果它在字符串的开头和/或结尾,则使用OR运算符(该问题中有太多|我认为= P):

^\\||\\|$

请勿替换(空字符串""


编辑2:

如果第一个正则表达式更接近您的需要,但又想删除多个管道,则添加量词:

^\\|+(.*)\\|+$

如果您需要第二个正则表达式(在第一次编辑中),但又想删除多个管道,请再次添加量词!

^\\|+|\\|+$

请注意,两种情况下的替换字符串均保持不变

您的评论使我相信您想这样做:

String result = subject.replaceAll("^\\||\\|$", "");

这将更改以下每个字符串:

|A|B|C|
|A|B|C
A|B|C|
A|B|C

到相同的字符串A|B|C

regex101.com查看

使用java.lang.String包中的indexOf()lastIndexOf()

    String s="|A|B|C|D|100|E|GEN|smsplus|11|11|11|";
    s=s.substring(s.indexOf("|"),s.lastIndexOf("|"));
    System.out.println(s);    //Prints A|B|C|D|100|E|GEN|smsplus|11|11|11

尝试,

String input = "|A|B|C|D|100|E|GEN|smsplus|11|11|11|";
input = input.substring(1, input.length()-1);

或使用StringUtils.removeStart,removeEnd

StringUtils.removeStart(input, "|");
StringUtils.removeEnd(input, "|");

要么

StringUtils.strip(input, "|");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM