Tôi muốn xóa một phần của chuỗi khỏi một ký tự, đó là:
Chuỗi nguồn:
manchester united (with nice players)
Chuỗi mục tiêu:
manchester united
Câu trả lời:
Có nhiều cách để làm điều đó. Nếu bạn có chuỗi mà bạn muốn thay thế, bạn có thể sử dụng replacehoặc replaceAllcác phương thức của Stringlớp. Nếu bạn đang tìm cách thay thế một chuỗi con, bạn có thể lấy chuỗi con bằng cách sử dụng substringAPI.
Ví dụ
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));
Để thay thế nội dung trong "()", bạn có thể sử dụng:
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);
Thay thế chuỗi
String s = "manchester united (with nice players)";
s = s.replace(" (with nice players)", "");
Biên tập:
Theo chỉ mục
s = s.substring(0, s.indexOf("(") - 1);
s = s.replace(...)
Sử dụng String.Replace ():
http://www.daniweb.com/software-development/java/threads/73139
Thí dụ:
String original = "manchester united (with nice players)";
String newString = original.replace(" (with nice players)","");
originalString.replaceFirst("[(].*?[)]", "");
https://ideone.com/jsZhSC
replaceFirst()có thể được thay thế bằngreplaceAll()
Sử dụng StringBuilder , bạn có thể thay thế theo cách sau.
StringBuilder str = new StringBuilder("manchester united (with nice players)");
int startIdx = str.indexOf("(");
int endIdx = str.indexOf(")");
str.replace(++startIdx, endIdx, "");
Lúc đầu, tôi sẽ chia chuỗi ban đầu thành một mảng Chuỗi với mã thông báo "(" và Chuỗi ở vị trí 0 của mảng đầu ra là những gì bạn muốn có.
String[] output = originalString.split(" (");
String result = output[0];
Bạn nên sử dụng phương thức substring () của đối tượng String.
Đây là một mã ví dụ:
Giả định: Tôi giả sử ở đây rằng bạn muốn truy xuất chuỗi cho đến dấu ngoặc đơn đầu tiên
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);
Sử dụng StringUtils từ commons lang
Chuỗi nguồn null sẽ trả về null. Chuỗi nguồn trống ("") sẽ trả về chuỗi trống. Chuỗi loại bỏ null sẽ trả về chuỗi nguồn. Một chuỗi loại bỏ rỗng ("") sẽ trả về chuỗi nguồn.
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);
}
}
Nếu bạn chỉ cần xóa mọi thứ sau dấu "(", hãy thử điều này. Không có gì nếu không có dấu ngoặc đơn.
StringUtils.substringBefore(str, "(");
Nếu có thể có nội dung sau dấu ngoặc đơn, hãy thử điều này.
String toRemove = StringUtils.substringBetween(str, "(", ")");
String result = StringUtils.remove(str, "(" + toRemove + ")");
Để xóa khoảng trắng kết thúc, hãy sử dụng str.trim()
Các hàm Apache StringUtils là null-, rỗng- và không khớp- an toàn
Bạn có thể sử dụng replaceđể sửa chuỗi của mình. Phần sau sẽ trả về mọi thứ trước dấu "(" và cũng loại bỏ tất cả các khoảng trắng ở đầu và cuối. Nếu chuỗi bắt đầu bằng dấu "(" thì chuỗi sẽ giữ nguyên.
str = "manchester united (with nice players)"
matched = str.match(/.*(?=\()/)
str.replace(matched[0].strip) if matched
Nếu bạn đang xóa một chuỗi cụ thể khỏi phần cuối, hãy sử dụng removeSuffix ( Tài liệu )
var text = "one(two"
text = text.removeSuffix("(two") // "one"
Nếu hậu tố không tồn tại trong chuỗi, nó chỉ trả về gốc
var text = "one(three"
text = text.removeSuffix("(two") // "one(three"
Nếu bạn muốn xóa sau một ký tự, hãy sử dụng
// 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, "")
Bạn cũng có thể kiểm tra removePrefix, removeRange, removeSurrounding, và replaceAfterLastđó cũng tương tự như
Danh sách đầy đủ ở đây: ( Tài liệu )