Ответ 1
Попробуйте использовать перегрузку которая принимает аргументы CharSequence
(например, String
), а не char
:
str = str.replace("X", "");
Я могу использовать это:
String str = "TextX Xto modifyX";
str = str.replace('X','');//that does not work because there is no such character ''
Есть ли способ удалить все вхождения символа X
из String в Java?
Я пробовал это и не хочу этого: str.replace('X',' '); //replace with space
Попробуйте использовать перегрузку которая принимает аргументы CharSequence
(например, String
), а не char
:
str = str.replace("X", "");
Использование
public String replaceAll(String regex, String replacement)
будет работать.
Использование будет str.replace("X", "");
.
Выполнение
"Xlakjsdf Xxx".replaceAll("X", "");
возвращает:
lakjsdf xx
Если вы хотите что-то сделать с Java Strings, Commons Lang StringUtils - отличное место для просмотра.
StringUtils.remove("TextX Xto modifyX", 'X');
String test = "09-09-2012";
String arr [] = test.split("-");
String ans = "";
for(String t : arr)
ans+=t;
Это пример того, где я удалил символ - из строки.
Мне нравится использовать RegEx по этому поводу:
str = str.replace(/X/g, '');
где g означает глобальный, чтобы он прошел всю вашу строку и заменил все X на '; если вы хотите заменить X и x, вы просто скажете:
str = str.replace(/X|x/g, '');
(см. мою скрипку здесь: fiddle)
Здравствуйте, попробуйте этот код ниже
public class RemoveCharacter {
public static void main(String[] args){
String str = "MXy nameX iXs farXazX";
char x = 'X';
System.out.println(removeChr(str,x));
}
public static String removeChr(String str, char x){
StringBuilder strBuilder = new StringBuilder();
char[] rmString = str.toCharArray();
for(int i=0; i<rmString.length; i++){
if(rmString[i] == x){
} else {
strBuilder.append(rmString[i]);
}
}
return strBuilder.toString();
}
}
Используйте replaceAll вместо replace
str = str.replaceAll("X,"");
Это должно дать вам желаемый ответ.
package com.acn.demo.action;
public class RemoveCharFromString {
static String input = "";
public static void main(String[] args) {
input = "abadbbeb34erterb";
char token = 'b';
removeChar(token);
}
private static void removeChar(char token) {
// TODO Auto-generated method stub
System.out.println(input);
for (int i=0;i<input.length();i++) {
if (input.charAt(i) == token) {
input = input.replace(input.charAt(i), ' ');
System.out.println("MATCH FOUND");
}
input = input.replaceAll(" ", "");
System.out.println(input);
}
}
}
вот лямбда-функция, которая удаляет все символы, переданные в виде строки
BiFunction<String,String,String> deleteChars = (fromString, chars) -> {
StringBuilder buf = new StringBuilder( fromString );
IntStream.range( 0, buf.length() ).forEach( i -> {
while( i < buf.length() && chars.indexOf( buf.charAt( i ) ) >= 0 )
buf.deleteCharAt( i );
} );
return( buf.toString() );
};
String str = "TextX XYto modifyZ";
deleteChars.apply( str, "XYZ" );//–> "Text to modify"
Вы можете использовать str = str.replace("X", "");
, как упоминалось ранее, и все будет в порядке. Для вашей информации ''
не пустой (или действительный) символ, а '\0'
.
Таким образом, вы можете использовать str = str.replace('X', '\0');
вместо этого.