Ik wil een deel van de tekenreeks van één teken verwijderen, namelijk:
Brontekenreeks:
manchester united (with nice players)
Doelreeks:
manchester united
Antwoord 1, autoriteit 100%
Er zijn meerdere manieren om dit te doen. Als je de string hebt die je wilt vervangen, kun je de methoden replace
of replaceAll
van de klasse String
gebruiken. Als u een substring wilt vervangen, kunt u de substring verkrijgen met behulp van de substring
API.
Bijvoorbeeld
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));
Om inhoud binnen “()” te vervangen, kunt u het volgende gebruiken:
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));
Antwoord 2, autoriteit 20%
Tekenreeks vervangen
String s = "manchester united (with nice players)";
s = s.replace(" (with nice players)", "");
Bewerken:
Op index
s = s.substring(0, s.indexOf("(") - 1);
Antwoord 3, autoriteit 13%
Gebruik string.replace ():
http://www.daniweb.com/software-development/java/ Threads / 73139
Voorbeeld:
String original = "manchester united (with nice players)";
String newString = original.replace(" (with nice players)","");
Antwoord 4, Autoriteit 6%
originalString.replaceFirst("[(].*?[)]", "");
https://ideone.com/jszhsc
replaceFirst()
Kan worden vervangen door replaceAll()
Antwoord 5, Autoriteit 4%
Gebruik stringbuilder , u kunt de volgende manier vervangen.
StringBuilder str = new StringBuilder("manchester united (with nice players)");
int startIdx = str.indexOf("(");
int endIdx = str.indexOf(")");
str.replace(++startIdx, endIdx, "");
Antwoord 6, Autoriteit 4%
U moet de substring () methode van string-object gebruiken.
Hier is een voorbeeldcode:
Veronderstelling: ik ga hier ervan uit dat u de tekenreeks wilt ophalen tot de eerste haakjes
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);
Antwoord 7, Autoriteit 4%
Ik zou eerst de originele string in een reeks string met een token “(” en de string op positie 0 van de uitgangsarray zijn, is wat u wilt hebben.
String[] output = originalString.split(" (");
String result = output[0];
Antwoord 8
met behulp van snoerdils van Commons Lang
Een nulbronstring retourneert null. Een lege (“”) bronstring retourneert de lege tekenreeks. Een nulverwijderingsstring retourneert de bronstring. Een leeg (“”) Remove String retourneert de bronstring.
String str = StringUtils.remove("Test remove", "remove");
System.out.println(str);
//result will be "Test"
Antwoord 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);
}
}
Antwoord 10
Als u gewoon alles hoeft te verwijderen na de “(“, probeer dit dan. doet niets als haakjes.
StringUtils.substringBefore(str, "(");
Als er na het einde haakjes inhoud kan zijn, probeer dit dan.
String toRemove = StringUtils.substringBetween(str, "(", ")");
String result = StringUtils.remove(str, "(" + toRemove + ")");
Gebruik str.trim()
om eindruimten te verwijderen.
Apache stringutils Functies zijn null-, leeg- en geen match-safe
Antwoord 11
U kunt replace
om uw string te repareren. Het volgende zal alles teruggeven vóór een “(” en ook alle leidende en trailing whitespace strippen. Als de string begint met een “(” het zal het gewoon achterlaten zoals het is.
str = "manchester united (with nice players)"
matched = str.match(/.*(?=\()/)
str.replace(matched[0].strip) if matched
Antwoord 12
KOTLIN-oplossing
Als u vanaf het einde een specifieke reeks verwijdert, gebruikt u removeSuffix
(documentatie )
var text = "one(two"
text = text.removeSuffix("(two") // "one"
Als het achtervoegsel niet bestaat in de string, retourneert het gewoon het origineel
var text = "one(three"
text = text.removeSuffix("(two") // "one(three"
Gebruik
als u wilt verwijderen na een personage,
// 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, "")
Je kunt ook removePrefix
, removeRange
, removeSurrounding
en replaceAfterLast
die vergelijkbaar zijn
De volledige lijst is hier:(Documentatie)