2012-01-01 2 views
48

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

Оригинальная строка: манчестер объединены (с хорошими игроками)

Будущий результат: Манчестер Юнайтед

+2

Как вы узнаете, какую часть сохранить и какую часть отбросить? Не зная этого, невозможно ответить на ваш вопрос? – Raedwald

ответ

113

Есть несколько способов сделать это. Если у вас есть строка, которую вы хотите заменить, вы можете использовать методы 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)); 
+0

). Очередь должна быть 'String toBeReplaced = str.substring (startIndex, endIndex + 1);' – Yeung

+0

также стоило бы удалить пробел: System.out.println (str. replace ("(с хорошими игроками)", "")); – kiedysktos

17

Использование 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)",""); 
+0

Любая конкретная причина, по которой это было отклонено? –

+0

Я не был downvoter, но, возможно, потому, что вы положили Replace в неправильный случай? –

+0

Спасибо, Майк. Я исправлю. –

25

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

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

Edit:

индексным

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

не забудьте 's = s.replace (...)' – dasblinkenlight

+0

Забыл, что спасибо. Я обновлю. –

+0

Этого не может быть, потому что то, что находится в круглых скобках, может измениться. Мне нужно изменить строку из символа ( – zmki

5

Вы должны использовать метод() объекта Струнный подстроку.

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

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

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

Я бы сначала разделить исходную строку в массив Строка с маркером «(» и строка в положении 0 выходного массива, что вы хотели бы иметь.

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

String result = output[0]; 
0

вы можете использовать replace для исправьте свою строку. Ниже будет возвращать все до того, как «(», а также обрезать все начальные и конечные пробелы. Если строка начинается с «(» это будет просто оставить его как есть.

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

Это не работает на Java. Это может быть производным от ECMAscript. У вас есть какой-то способ заставить этот код работать как есть в Java? – 1111161171159459134

5

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

StringBuilder str = new StringBuilder("manchester united (with nice players)"); 
int startIdx = str.indexOf("("); 
int endIdx = str.indexOf(")"); 
str.replace(++startIdx, endIdx, ""); 
0
// 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); 

    } 
} 
1

Using StringUtils from commons lang

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

String str = StringUtils.remove("Test remove", "remove"); 
System.out.println(str); 
//result will be "Test" 
Смежные вопросы