【问题标题】:How to create a method that removes alphabet only in a String [closed]如何创建仅在字符串中删除字母的方法[关闭]
【发布时间】:2021-07-06 12:40:47
【问题描述】:
myString = "my lucky numbers are 6, 8, and 19."

我正在调用myString.remove("ra6"),这应该返回"my lucky numbes e 6, 8, nd 19"

这就是我想要做的。

public String remove(String arg) {
    if (myString != null) {
        char[] arrayOfChars1 = myString.toCharArray();
        char[] arrayOfChars2 = arg.toCharArray();
        char[] newArray = 
    }
    return null;
}

我正在尝试创建一个arrayOfChars1,以便我可以将它与给定的字符串进行比较,这将是另一个arrayOfChars2

和第三个数组来存储比较。如果两个数组 (arrayOfChar1 and arrayOfChar2) 中都有一个字符,则应将其删除,但只删除字母而不是数字。

myString = "my lucky numbers are 6, 8, and 19."
myString.remove("ra6") //6 should be ignored.

return "my lucky numbe(r)s (a)(r)e 6, 8, and 19."

只应删除 char 'a' 和 'r'

【问题讨论】:

  • 请解释为什么这是预期的输出。
  • 使用replaceAll 使用包含这些字符的字符类:"[ra6]"。将它们全部替换为空:""
  • 如果我使用replaceAll,只有字母应该被删除,即使数字也会被替换
  • 先去掉参数中的数字stackoverflow.com/questions/17516049/…

标签: java arrays


【解决方案1】:

您可以先从字符串中删除所有非字母字符以替换并使用带有字符类的String#replaceAll

String s = "my lucky numbers are 6, 8, and 19.";
String remove = "ra6";
String res = s.replaceAll("["+
      remove.replaceAll("[^A-Za-z]", "")
     +"]", "");
System.out.println(res);

只应删除 char 'a' 和 'r'

您可以将正则表达式 [ar] 替换为 ""。正则表达式[ar] 表示方括号内的字符之一,称为Character Classes

String myString = "my lucky numbers are 6, 8, and 19.";
myString = myString.replaceAll("[ar]", "");
System.out.println(myString);// my lucky numbes e 6, 8, nd 19.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    • 2020-12-08
    相关资源
    最近更新 更多