package nameinput;
import java.util.Scanner;
public class NameInput {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner user_input = new Scanner( System.in);
System.out.print("Please enter your value");
String entered_value;
entered_value = user_input.next();
String replace = entered_value.replace("a-z, A-Z", "");
System.out.println(entered_value);
}
}
以上是我到目前为止编写的代码。目前,每当我运行程序时,所有发生的事情都是要求用户输入,然后输入任何值,将重复。因此,字符串替换不起作用,我希望剥离任何输入的任何A-Z,a-z字符的字符串并用空格替换它们。
可悲的是,这不起作用
答案 0 :(得分:1)
尝试
String replace = entered_value.replaceAll("[A-Za-z]+","");
System.out.println(replace);
正则表达式的细分:
答案 1 :(得分:0)
有两件事看起来有点奇怪。
首先as stated by @wakjah,您不打印替换字符的字符串。您正在使用输入的值打印String。
其次我不认为替换方法是如何工作的。 replace方法有两个参数:要替换的旧值和要替换它的值。
因此entered_value.replace("a-z, A-Z", "");
意味着,如果String包含"a-z, A-Z"
(它必须匹配整个字符串),则将其替换为""
。
例如,字符串"Hello, World!"
将保持不变,因为整个字符串"a-z, A-Z"
都不匹配。
但"Hello a-z, A-Z is going to be replaced"
将成为"Hello is going to be replaced"
。
可以通过replaceAll
方法完成此操作。这需要一个正则表达式,可以用来匹配整个字母表。