如何替换java字符串中的所有数字

时间:2014-05-12 11:19:28

标签: java regex

我有这样的字符串s="ram123",d="ram varma656887" 我想要像ram和ram varma这样的字符串,以便如何从组合字符串中分离字符串 我正在尝试使用正则表达式,但它无法正常工作

PersonName.setText(cursor.getString(cursor.getColumnIndex(cursor
                .getColumnName(1))).replaceAll("[^0-9]+"));

6 个答案:

答案 0 :(得分:10)

您可以使用以下正则表达式:\d来表示数字。在您使用的正则表达式中,您有^,它将检查字符集0-9

以外的任何字符
    String s="ram123";
    System.out.println(s);
    /* You don't need the + because you are using the replaceAll method */
    s = s.replaceAll("\\d", "");  // or you can also use [0-9]
    System.out.println(s);

答案 1 :(得分:7)

选择所有号码的正确RegEx只是[0-9],您可以跳过+,因为您使用的是replaceAll

但是,您对replaceAll的使用是错误的,其定义如下:replaceAll(String regex, String replacement)。您示例中的正确代码为:replaceAll("[0-9]", "")

答案 2 :(得分:2)

要删除这些数字,以下代码可以解决问题。

 stringname.replaceAll("[0-9]","");

答案 3 :(得分:0)

我认为你错过了替换所有的第二个论点。你需要将一个空字符串作为参数2,而不是实际将其留空。

replaceAll(<your regexp>,"")

答案 4 :(得分:0)

请按以下方式进行操作

String name = "ram varma656887";
    name = name.replaceAll("[0-9]","");
    System.out.println(name);//ram varma

或者你可以这样做

 String name = "ram varma656887";
         name = name.replaceAll("\\d","");
          System.out.println(name);//ram varma

同样的东西也适合你

String given = "ram varma656887";

    String[] arr = given.split("\\d");
    String data = new String();
    for(String x : arr){

        data = data+x;
    }

    System.out.println(data);//ram varma

答案 5 :(得分:0)

您可以使用Java - String replaceAll()方法。 此方法将使用给定替换的匹配给定正则表达式的此字符串的每个子字符串替换。

以下是此方法的语法:

public String replaceAll(String regex, String replacement)

以下是参数的详细信息:

regex - 此字符串要匹配的正则表达式。

replacement - 将替换找到的表达式的字符串。

返回值:

此方法返回结果字符串。

您的问题使用此

    String s = "ram123", d = "ram varma656887";
    System.out.println("s" + s.replaceAll("[0-9]", ""));
    System.out.println("d" + d.replaceAll("[0-9]", ""));