Я хочу удалить часть строки из одного символа, то есть:
Исходная строка:
manchester united (with nice players)
Целевая строка:
manchester united
Я хочу удалить часть строки из одного символа, то есть:
Исходная строка:
manchester united (with nice players)
Целевая строка:
manchester united
Существует несколько способов сделать это. Если у вас есть строка, которую вы хотите заменить, вы можете использовать методы 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));
Строка Заменить
String s = "manchester united (with nice players)";
s = s.replace(" (with nice players)", "");
Edit:
По индексу
s = s.substring(0, s.indexOf("(") - 1);
Используйте 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)","");
Я бы сначала разделил исходную строку на массив String с токеном "(" и строка String в позиции 0 выходного массива - это то, что вы хотели бы иметь.
String[] output = originalString.split(" (");
String result = output[0];
Используя StringBuilder, вы можете заменить следующий способ.
StringBuilder str = new StringBuilder("manchester united (with nice players)");
int startIdx = str.indexOf("(");
int endIdx = str.indexOf(")");
str.replace(++startIdx, endIdx, "");
originalString.replaceFirst("[(].*?[)]", "");
https://ideone.com/jsZhSC replaceFirst()
можно заменить на replaceAll()
Вы должны использовать метод 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);
Использование StringUtils from commons lang
Строка с нулевым источником вернет значение null. Пустая строка ( ") возвращает пустую строку. Строка null delete вернет исходную строку. Пустая строка (" ") возвращает строку источника.
String str = StringUtils.remove("Test remove", "remove");
System.out.println(str);
//result will be "Test"
// 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);
}
}
Вы можете использовать replace
, чтобы исправить вашу строку. Следующее вернет все до "(", а также разделит все начальные и конечные пробелы. Если строка начинается с "(" она просто оставит ее как есть ".
str = "manchester united (with nice players)"
matched = str.match(/.*(?=\()/)
str.replace(matched[0].strip) if matched
Если вам просто нужно удалить все после "(", попробуйте это. Ничего не делает, если нет скобок.
StringUtils.substringBefore(str, "(");
Если после конечных скобок может быть контент, попробуйте это.
String toRemove = StringUtils.substringBetween(str, "(", ")");
String result = StringUtils.remove(str, "(" + toRemove + ")");
Для удаления пробелов используйте str.trim()
Функции Apache StringUtils являются null-, empty- и не match- безопасны