我有这样一个字符串23.Piano+trompet
,我想删除23.
使用此函数的字符串部分:
private String removeSignsFromName(String name) {
name = name.replaceAll(" ", "");
name = name.replaceAll(".", "");
return name.replaceAll("\\^([0-9]+)", "");
}
但它并没有这样做。 此外,还有在运行时没有任何错误。
以下内容替换所有空格字符( \\s
),点( \\.
以及数字( \\d
)与""
name.replaceAll("^[\\s\\.\\d]+", "");
如果我想要什么,以取代+
与_
?
name.replaceAll("^[\\s\\.\\d]+", "").replaceAll("\\+", "_");
你不需要逃脱^
,您可以使用\\d+
来匹配多个数字, \\.
对于文字点及无需多次调用replaceAll
。 例如,
private static String removeSignsFromName(String name) {
return name.replaceAll("^\\d+\\.", "");
}
这是我喜欢测试
public static void main(String[] args) {
System.out.println(removeSignsFromName("23.Piano+trompet"));
}
和GOT
Piano+trompet
return name.replaceFirst("^\\d+\\.", "");
这个怎么样:
public static String removeNumOfStr(String str) {
if (str == null) {
return null;
}
char[] ch = str.toCharArray();
int length = ch.length;
StringBuilder sb = new StringBuilder();
int i = 0;
while (i < length) {
if (Character.isDigit(ch[i])) {
i++;
} else {
sb.append(ch[i]);
i++;
}
}
return sb.toString();
}
public static void removenum(String str){
char[] arr=str.toCharArray();
String s="";
for(char ch:arr){
if(!(ch>47 & ch<57)){
s=s+ch;
}
}
System.out.println(s);
}