Yanıtlar:
Kolayca kullanabilirsiniz String.replace()
:
String helloWorld = "Hello World!";
String hellWrld = helloWorld.replace("o","");
Check out Apache StringUtils :
static String replace(String text, String searchString, String replacement)
Bir Dize'nin başka bir Dize içindeki tüm tekrarlamalarını değiştirir.static String replace(String text, String searchString, String replacement, int max)
Arama Dizesinin ilk maksimum değerleri için, bir Dizeyi daha büyük bir Dizenin içindeki başka bir Dizeyle değiştirir.static String replaceChars(String str, char searchChar, char replaceChar)
Dizedeki bir karakterin tüm tekrarlarını başka bir karakterle değiştirir.static String replaceChars(String str, String searchChars, String replaceChars)
Bir Dizede birden çok karakteri tek seferde değiştirir.static String replaceEach(String text, String[] searchList, String[] replacementList)
Başka bir Dize içindeki tüm Dize oluşumlarını değiştirir.static String replaceEachRepeatedly(String text, String[] searchList, String[] replacementList)
Başka bir Dize içindeki tüm Dize oluşumlarını değiştirir.static String replaceOnce(String text, String searchString, String replacement)
Bir String'i bir kez daha büyük bir String içindeki başka bir String ile değiştirir.static String replacePattern(String source, String regex, String replacement)
Pattern.DOTALL seçeneğini kullanarak, kaynak Dize'nin verilen normal ifadeyle eşleşen her bir alt dizesini verilen değiştirmeyle değiştirir.
replace('regex', 'replacement');
replaceAll('regex', 'replacement');
Örneğinizde,
String hi = "Hello World!"
String no_o = hi.replaceAll("o", "");
Ayrıca kullanabilirsiniz Guava en CharMatcher.removeFrom fonksiyonunu.
Misal:
String s = CharMatcher.is('a').removeFrom("bazaar");
Substring'i mevcut dize ile değiştirmek için de kullanabilirsiniz:
var str = "abc awwwa";
var Index = str.indexOf('awwwa');
str = str.substring(0, Index);
Verilen dizeden tüm alt dizeleri silmek için uygulama
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);
}
İsSubstring () yönteminin uygulanması burada
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));
}
Karakterleri filtrelemek için karmaşık bir mantığınız varsa, bunun yerine başka bir yol replace()
.