Удалить часть строки в Java - PullRequest
65 голосов
/ 01 января 2012

Я хочу удалить часть строки из одного символа, а именно:

Исходная строка:

manchester united (with nice players)

Целевая строка:

manchester united

Ответы [ 11 ]

139 голосов
/ 01 января 2012

Есть несколько способов сделать это.Если у вас есть строка, которую вы хотите заменить, вы можете использовать методы replace или replaceAll класса String.Если вы хотите заменить подстроку, вы можете получить подстроку, используя substring API.

Например,

String str = "manchester united (with nice players)";
System.out.println(str.replace("(with nice players)", ""));
int index = str.indexOf("(");
System.out.println(str.substring(0, index));

Чтобы заменить содержимое внутри "()", вы можете использовать:

int startIndex = str.indexOf("(");
int endIndex = str.indexOf(")");
String replacement = "I AM JUST A REPLACEMENT";
String toBeReplaced = str.substring(startIndex + 1, endIndex);
System.out.println(str.replace(toBeReplaced, replacement));
27 голосов
/ 01 января 2012

String Replace

String s = "manchester united (with nice players)";
s = s.replace(" (with nice players)", "");

Редактировать:

По индексу

s = s.substring(0, s.indexOf("(") - 1);
18 голосов
/ 01 января 2012

Использовать String.Replace ():

http://www.daniweb.com/software-development/java/threads/73139

Пример:

String original = "manchester united (with nice players)";
String newString = original.replace(" (with nice players)","");
6 голосов
/ 13 июля 2015
originalString.replaceFirst("[(].*?[)]", "");

https://ideone.com/jsZhSC
replaceFirst() можно заменить на replaceAll()

6 голосов
/ 03 января 2012

Используя StringBuilder , вы можете заменить следующим образом.

StringBuilder str = new StringBuilder("manchester united (with nice players)");
int startIdx = str.indexOf("(");
int endIdx = str.indexOf(")");
str.replace(++startIdx, endIdx, "");
6 голосов
/ 01 января 2012

Сначала я бы разделил исходную строку на массив строк с токеном "(", а строка в позиции 0 выходного массива - это то, что вы хотели бы получить.

String[] output = originalString.split(" (");

String result = output[0];
5 голосов
/ 01 января 2012

Вы должны использовать метод substring () объекта String.

Вот пример кода:

Предположение: я предполагаю, что вы хотите извлечь строку до первой круглой скобки

String strTest = "manchester united(with nice players)";
/*Get the substring from the original string, with starting index 0, and ending index as position of th first parenthesis - 1 */
String strSub = strTest.subString(0,strTest.getIndex("(")-1);
2 голосов
/ 14 декабря 2017

Использование StringUtils из общего ресурса lang

Нулевая исходная строка вернет ноль. Пустая ("") исходная строка вернет пустую строку. Пустая строка удаления вернет исходную строку. Пустая ("") строка удаления вернет исходную строку.

String str = StringUtils.remove("Test remove", "remove");
System.out.println(str);
//result will be "Test"
1 голос
/ 27 апреля 2017
// Java program to remove a substring from a string
public class RemoveSubString {

    public static void main(String[] args) {
        String master = "1,2,3,4,5";
        String to_remove="3,";

        String new_string = master.replace(to_remove, "");
        // the above line replaces the t_remove string with blank string in master

        System.out.println(master);
        System.out.println(new_string);

    }
}
0 голосов
/ 19 июля 2019

Если вам просто нужно удалить все после "(", попробуйте это. Ничего не делает, если нет скобок.

StringUtils.substringBefore(str, "(");

Если после последних скобок может быть контент, попробуйте это.

String toRemove = StringUtils.substringBetween(str, "(", ")");
String result = StringUtils.remove(str, "(" + toRemove + ")"); 

Чтобы удалить пробелы, используйте str.trim()

Apache StringUtils функции нулевые, пустые и не безопасны для совпадения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...