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

x4shl7ld  于 2022-12-28  发布在  Java
关注(0)|答案(6)|浏览(847)

我有这样的字符串字符串s="ram123",d="ram varma656887"我想要像ram和ram varma这样的字符串,所以如何从组合字符串中分离字符串我尝试使用regex,但它不工作

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

vh0rcniy1#

选择所有数字的正确RegEx应该是[0-9],您可以跳过+,因为您使用的是replaceAll
但是,您对replaceAll的使用是错误的,它的定义如下:replaceAll(String regex, String replacement)。示例中的正确代码应为:replaceAll("[0-9]", "") .

50few1ms

50few1ms2#

您可以使用以下正则表达式:\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);
brccelvz

brccelvz3#

要删除这些数字,下面的代码可以做到这一点。

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

7rtdyuoh4#

请按以下步骤操作

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

given这样的东西也会对你起作用

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
xxhby3vn

xxhby3vn5#

我想你漏掉了replace all的第二个参数。你需要把一个空字符串作为参数2,而不是实际上让它为空。
尝试

replaceAll(<your regexp>,"")
nkhmeac6

nkhmeac66#

你可以使用Java的字符串replaceAll()方法。2这个方法用给定的替换来替换这个字符串中与给定正则表达式匹配的每个子字符串。

  • 以下是此方法的语法:*
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]", ""));

相关问题