Удалить часть строки в Java

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

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

manchester united (with nice players)

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

manchester united

Ответ 1

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

Например

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));

Ответ 2

Строка Заменить

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

Edit:

По индексу

s = s.substring(0, s.indexOf("(") - 1);

Ответ 4

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

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

String result = output[0];

Ответ 5

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

StringBuilder str = new StringBuilder("manchester united (with nice players)");
int startIdx = str.indexOf("(");
int endIdx = str.indexOf(")");
str.replace(++startIdx, endIdx, "");

Ответ 6

originalString.replaceFirst("[(].*?[)]", "");

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

Ответ 7

Вы должны использовать метод 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);

Ответ 8

Использование StringUtils from commons lang

Строка с нулевым источником вернет значение null. Пустая строка ( ") возвращает пустую строку. Строка null delete вернет исходную строку. Пустая строка (" ") возвращает строку источника.

String str = StringUtils.remove("Test remove", "remove");
System.out.println(str);
//result will be "Test"

Ответ 9

// 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);

    }
}

Ответ 10

Вы можете использовать replace, чтобы исправить вашу строку. Следующее вернет все до "(", а также разделит все начальные и конечные пробелы. Если строка начинается с "(" она просто оставит ее как есть ".

str = "manchester united (with nice players)"
matched = str.match(/.*(?=\()/)
str.replace(matched[0].strip) if matched

Ответ 11

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

StringUtils.substringBefore(str, "(");

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

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

Для удаления пробелов используйте str.trim()

Функции Apache StringUtils являются null-, empty- и не match- безопасны