我想从一个字符中删除一部分字符串,即:
源字符串:
manchester united (with nice players)
目标字符串:
manchester united
Answers:
有多种方法可以做到这一点。如果您有要替换的字符串,则可以使用该类的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));
String toBeReplaced = str.substring(startIndex , endIndex + 1);
字符串替换
String s = "manchester united (with nice players)";
s = s.replace(" (with nice players)", "");
编辑:
按索引
s = s.substring(0, s.indexOf("(") - 1);
s = s.replace(...)
使用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)","");
originalString.replaceFirst("[(].*?[)]", "");
https://ideone.com/jsZhSC
replaceFirst()
可以替换为replaceAll()
使用StringBuilder,您可以替换以下方式。
StringBuilder str = new StringBuilder("manchester united (with nice players)");
int startIdx = str.indexOf("(");
int endIdx = str.indexOf(")");
str.replace(++startIdx, endIdx, "");
首先,我将原始字符串拆分为带有令牌“(”的String数组,而输出数组位置0处的String是您想要的。
String[] output = originalString.split(" (");
String result = output[0];
您应该使用String对象的substring()方法。
这是示例代码:
假设:我在这里假设您要检索字符串,直到第一个括号为止
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);
空的源字符串将返回空。空(“”)源字符串将返回空字符串。空的删除字符串将返回源字符串。空(“”)删除字符串将返回源字符串。
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);
}
}
如果只需要删除“(”之后的所有内容,请尝试此操作。如果没有括号,则不执行任何操作。
StringUtils.substringBefore(str, "(");
如果括号后可能有内容,请尝试此操作。
String toRemove = StringUtils.substringBetween(str, "(", ")");
String result = StringUtils.remove(str, "(" + toRemove + ")");
要删除末端空格,请使用 str.trim()
Apache StringUtils函数为null,empty和no matchsafe
您可以使用它replace
来修复您的字符串。下面的代码将返回“(”之前的所有内容,并去除所有前导和尾随空格。如果字符串以“(”开头,则将其保留原样。
str = "manchester united (with nice players)"
matched = str.match(/.*(?=\()/)
str.replace(matched[0].strip) if matched
如果要从末尾删除特定的字符串,请使用 removeSuffix
(文档)
var text = "one(two"
text = text.removeSuffix("(two") // "one"
如果字符串中不存在后缀,则仅返回原始
var text = "one(three"
text = text.removeSuffix("(two") // "one(three"
如果要在字符后删除,请使用
// Each results in "one"
text = text.replaceAfter("(", "").dropLast(1) // You should check char is present before `dropLast`
// or
text = text.removeRange(text.indexOf("("), text.length)
// or
text = text.replaceRange(text.indexOf("("), text.length, "")
您还可以检查出removePrefix
,removeRange
,removeSurrounding
,和replaceAfterLast
是相似
完整列表是在这里:(文档)