【问题标题】:Keep only valid characters in a String仅保留字符串中的有效字符
【发布时间】:2022-01-17 19:19:24
【问题描述】:

有没有比我的解决方案更好的方法来从字符串中删除所有非法字符?也许是 lambda 表达式或正则表达式?在这种情况下,我只想保留 0 - 9、A - Z、a - z。

String iban = "DE07 1234 1234 1234 1234 12";
StringBuilder sb = new StringBuilder();
for (int i = 0; i < iban.length(); i++) {
    int val = iban.charAt(i);
    if (    (val >= '0' && val <= '9')          // 0 - 9
            || (val >= 'A' && val <= 'Z')       // A - Z
            || (val >= 'a' && val <= 'z')) {    // a - z
        sb.append(val);
    }
}
iban = sb.toString();

【问题讨论】:

标签: java


【解决方案1】:

它应该只留下字母 a-z、A-Z 和数字 0-9。 基本上使用正则表达式进行替换

iban = iban.replaceAll("[^a-zA-Z0-9]","");

【讨论】:

  • 你可能应该添加一个赋值,因为仅仅调用replaceAll而不使用返回值将没有任何效果。
  • @VGR 是的,你是对的。我确实纠正了它
【解决方案2】:

是的:使用正则表达式:

String iban = "DE07 1234 1234 1234 1234 12";
iban = iban.replaceAll("[^0-9A-Za-z]", "");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 2021-06-14
    • 2020-07-09
    相关资源
    最近更新 更多