从java中删除字符串中的字符

时间:2016-07-16 23:09:53

标签: java string replace

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字符的字符串并用空格替换它们。

可悲的是,这不起作用

2 个答案:

答案 0 :(得分:1)

尝试

String replace = entered_value.replaceAll("[A-Za-z]+","");
System.out.println(replace);   

正则表达式的细分:

  • [...] =字符类匹配:匹配括号中的任何字符
  • A-Z = ABC的简写...... XYZ
  • a-z = abc的缩写... zyz
  • x + =匹配一个或多个连续的 x (在这种情况下, x 是整个括号中的字符类)

答案 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方法完成此操作。这需要一个正则表达式,可以用来匹配整个字母表。