Câu trả lời:
Bạn có thể dễ dàng sử dụng String.replace()
:
String helloWorld = "Hello World!";
String hellWrld = helloWorld.replace("o","");
Kiểm tra StringUtils Apache :
static String replace(String text, String searchString, String replacement)
Thay thế tất cả các lần xuất hiện của một Chuỗi trong một Chuỗi khác.static String replace(String text, String searchString, String replacement, int max)
Thay thế một Chuỗi bằng một Chuỗi khác bên trong Chuỗi lớn hơn, cho các giá trị tối đa đầu tiên của Chuỗi tìm kiếm.static String replaceChars(String str, char searchChar, char replaceChar)
Thay thế tất cả các lần xuất hiện của một ký tự trong Chuỗi bằng một ký tự khác.static String replaceChars(String str, String searchChars, String replaceChars)
Thay thế nhiều ký tự trong một chuỗi trong một lần.static String replaceEach(String text, String[] searchList, String[] replacementList)
Thay thế tất cả các lần xuất hiện của Chuỗi trong Chuỗi khác.static String replaceEachRepeatedly(String text, String[] searchList, String[] replacementList)
Thay thế tất cả các lần xuất hiện của Chuỗi trong Chuỗi khác.static String replaceOnce(String text, String searchString, String replacement)
Thay thế một Chuỗi bằng một Chuỗi khác bên trong Chuỗi lớn hơn, một lần.static String replacePattern(String source, String regex, String replacement)
Thay thế từng chuỗi con của Chuỗi nguồn khớp với biểu thức chính quy đã cho bằng sự thay thế đã cho bằng cách sử dụng tùy chọn Pattern.DOTALL.
replace('regex', 'replacement');
replaceAll('regex', 'replacement');
Trong ví dụ của bạn,
String hi = "Hello World!"
String no_o = hi.replaceAll("o", "");
Bạn cũng có thể sử dụng chức năng CharMatcher.removeFrom của ổi .
Thí dụ:
String s = CharMatcher.is('a').removeFrom("bazaar");
Bạn cũng có thể sử dụng Chuỗi con để thay thế bằng chuỗi hiện có:
var str = "abc awwwa";
var Index = str.indexOf('awwwa');
str = str.substring(0, Index);
Đây là cách thực hiện để xóa tất cả các chuỗi con khỏi chuỗi đã cho
public static String deleteAll(String str, String pattern)
{
for(int index = isSubstring(str, pattern); index != -1; index = isSubstring(str, pattern))
str = deleteSubstring(str, pattern, index);
return str;
}
public static String deleteSubstring(String str, String pattern, int index)
{
int start_index = index;
int end_index = start_index + pattern.length() - 1;
int dest_index = 0;
char[] result = new char[str.length()];
for(int i = 0; i< str.length() - 1; i++)
if(i < start_index || i > end_index)
result[dest_index++] = str.charAt(i);
return new String(result, 0, dest_index + 1);
}
Việc thực hiện phương thức isSubopes () ở đây
private static void replaceChar() {
String str = "hello world";
final String[] res = Arrays.stream(str.split(""))
.filter(s -> !s.equalsIgnoreCase("o"))
.toArray(String[]::new);
System.out.println(String.join("", res));
}
Trong trường hợp bạn có một số logic phức tạp để lọc char, chỉ cần một cách khác thay vì replace()
.
Nếu bạn biết chỉ số bắt đầu và kết thúc, bạn có thể sử dụng chỉ số này
string = string.substring(0, start_index) + string.substring(end_index, string.length());