【问题标题】:Replace all special character except "\" and "." [duplicate]替换除“\”和“.”之外的所有特殊字符[复制]
【发布时间】:2018-07-11 10:17:56
【问题描述】:

我在 java 中有一个带有这样特殊字符的字符串

String string = "Report created with id: [2748], generator:file,
 filename:C:\Users\username\AppData\Local\Temp\UnitTestEncryption.csv.pgp"

我需要像这样修改上面的字符串

"Report created with id 2748 generator file
     filename C \Users\username\AppData\Local\Temp\UnitTestEncryption.csv.pgp"

在简单的语言中,我需要替换所有特殊字符,除了反斜杠“\”和句号“。” 我已经检查过这个link

但它对我不起作用,特别是对于 反斜杠 ('\')。

【问题讨论】:

  • 什么是特殊字符?你的意思是不是字母、数字或空格的任何东西?
  • 反斜杠是java中的转义序列。
  • 另外,什么不起作用?你能分享一段不起作用的代码吗?
  • @Javafan-Shashank- 是的,Shashank,这就是它产生问题的原因。
  • @FedericoklezCulloca ,特殊字符如“\.[]{}()*+-=?^$|” .因为我需要替换除反斜杠“\”和句号“。”之外的所有字符

标签: java regex regex-group


【解决方案1】:

一种简单的方法是遍历字符串并使用您需要的所有字符创建一个新字符串。

String original="SOME TEXT";
String newStr="";

for(int i=0;i<original.length();i++){
    char ch=original.charAt(i);
    if(Character.isLetter(ch) || Character.isDigit(ch) || ch=='\\' || ch=='.'){
       newStr+=ch;    
      }else {
       newStr+=" "; 
     }
}

【讨论】:

    【解决方案2】:

    你可以创建一个带有特殊字符的字符串

    String special = "&^#@$*" //what you think is special char. 
    

    之后取出字符串的每个字符并与特殊字符进行比较。

    String myString;
    
    for(int i = 0; i < myString.length; i++){
    
        if( special.contains( myString.charAt(i) + "" ) ){
    
             //TODO
    
        }
    }
    

    【讨论】:

    • 特殊字符可能有数千个。
    • 你可以创建一个包含可以传递的字符的字符串。
    • 我不是投反对票的人,但这将是您需要创建一个包含 54 个字符的字符串的另一个问题。
    • @Javafan-Shashank- 64,如果我们包含数字
    • @FedericoklezCulloca 哎呀我错过了数字,对不起
    【解决方案3】:
    string = string.replaceAll("[^a-zA-Z0-9\\\\.]", " ");
    

    用你不想被替换的任何东西完成课程。

    您可以添加 - 和 _ 例如:

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

    【讨论】:

      【解决方案4】:

      您可以在下面的列表中添加所有可接受的字符并删除剩余的字符:

       string = string.replaceAll("[^a-zA-Z0-9\s\\.\\\\]+", " ");
      

      【讨论】:

        猜你喜欢
        • 2013-05-29
        • 2012-11-06
        • 2014-02-12
        • 2021-08-09
        • 1970-01-01
        • 1970-01-01
        • 2018-11-17
        • 1970-01-01
        • 2015-09-12
        相关资源
        最近更新 更多