首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何删除java中句子的第一次和最后一次出现

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

Stack Overflow用户
提问于 2013-09-30 07:27:46
回答 4查看 1.7K关注 0票数 0

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

我必须首先检查|是否在first and last上可用

我相信这会给我带来一些不利的选票,但我真的不知道该怎么做。

编辑

我还必须检查以下情况:

代码语言:javascript
复制
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 

||的可能性--这就是为什么我不想给出任何解释的原因。

谢谢你宝贵的时间。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-09-30 07:46:21

你的评论让我相信你想这样做:

代码语言:javascript
复制
String result = subject.replaceAll("^\\||\\|$", "");

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

代码语言:javascript
复制
|A|B|C|
|A|B|C
A|B|C|
A|B|C

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

请在regex101.com上看到。

票数 4
EN

Stack Overflow用户

发布于 2013-09-30 07:35:49

您也许可以使用regex:

代码语言:javascript
复制
^\\|(.*)\\|$

并由$1代替

ideone演示

如果字符串的开始和结束都不是|,则不会有替换。

编辑:根据您的最后一个注释,如果您希望删除字符串的开头和/或结尾处的|,请使用OR操作符(我认为这个问题中有太多的| =P):

代码语言:javascript
复制
^\\||\\|$

以无替换(空字符串"")

EDIT2:

如果第一个正则表达式更接近所需,但也希望删除多个管道,则添加量词:

代码语言:javascript
复制
^\\|+(.*)\\|+$

如果第二个regex (在第一个编辑中)是您所需要的,但也希望删除多个管道,再次添加量词!

代码语言:javascript
复制
^\\|+|\\|+$

请注意,替换字符串在这两种情况下都保持不变。

票数 6
EN

Stack Overflow用户

发布于 2013-09-30 07:29:18

使用indexOf()和来自java.lang.String包的lastIndexOf()

代码语言:javascript
复制
    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
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19088650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档