从字符开始从字符串中删除子字符串

时间:2016-03-10 05:21:06

标签: java string substring

  

讲述者:孩子,如果你是单身,那么以后就是这么开心。   [标题:2030年]。但是只有你的一个故事可以结束   办法。其余的人因受伤而结束。这是其中之一   故事,它开始......穿着衬衫。

从上面的字符串中,我将如何删除[]所包围的句子。因此,这个

  

[标题:2030年]。

将被取出。然后字符串变为

讲述者:孩子们,当你单身时,你所寻找的一切都是幸福的。但只有你的一个故事可以这样结束。其余的人因受伤而结束。这是其中一个故事,它开始......带衬衫。

3 个答案:

答案 0 :(得分:4)

试试这个:

public static void main(String[] args) {
    String s = "Narrator: Kids, if you are single is all this happy ever after. [Title: the year of 2030]. But only one of your stories can end that way. The rest end with someone getting hurt. This is one of those stories, and it starts… with a shirt.";
    System.out.println(s.replaceAll("\\[.*?\\]", ""));
}

O / P:

  

讲述者:孩子,如果你是单身,那么以后就是这么开心。 。但   只有你的一个故事可以这样结束。其余的人与某人结束   受到伤害。这是其中一个故事,它开始......用一个   衬衫。

答案 1 :(得分:1)

您可以使用带有String.replaceAll(String, String)的正则表达式,但是您需要转义[]个字符(因为它们在正则表达式中具有特殊含义)。像,

String story = "Narrator: Kids, if you are single is all this happy "
    + "ever after. [Title: the year of 2030]. But only one of your stories "
    + "can end that way. The rest end with someone getting hurt. "
    + "This is one of those stories, and it starts… with a shirt.";
story = story.replaceAll("\\[.*\\]", "");
System.out.println(story);

答案 2 :(得分:0)

或者你可以试试这个。

String str = "Narrator: Kids,if you are single is all this happy ever after. [Title: the year of 2030]. But (...)";
    StringBuilder strBuild = new StringBuilder(str);

      int start = str.indexOf("[");
      int end = str.indexOf("]")+1;
    strBuild.delete(start, end);
    System.out.println(strBuild);