2016-03-10 4 views
2

Ведущий: Дети, если вы одиноки, все это счастливо. [Название: год 2030]. Но только одна из ваших историй может закончиться тем, что путь . Остальное заканчивается тем, кто пострадал. Это один из тех рассказов , и он начинается ... с рубашкой.Удалить подстроку из строки, начинающейся с символа

Из строки выше, как удалить предложение, окруженное []. Таким образом, это

[Название: год 2030].

будет вывезен. Затем строка становится

Ведущий: Дети, когда вы одиноки, все, что вы ищете, с радостью после этого. Но только одна из ваших историй может закончиться так. Остальное заканчивается тем, кто пострадал. Это одна из тех историй, и она начинается ... с рубашкой.

+0

Итак, вы хотите извлечь эту часть или удалить ее из основной строки? – TheLostMind

+0

удалите его из основной строки – user3796292

+0

Решения replaceAll превосходны или просто используют метод хорошего индекса index/substring –

ответ

3

Попробуйте это:

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

Вы можете использовать регулярное выражение с 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); 
+0

'\\ [. * \\]', если их 2, он также удалит все между ними: P – TheLostMind

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); 
Смежные вопросы