【问题标题】:Replace special character in a String替换字符串中的特殊字符
【发布时间】:2014-12-07 18:25:18
【问题描述】:

我必须将带有特殊字符的字符串替换为:XY_Universit�-WWWWW-ZZZZZ 另一个字符串,例如:XY_Universita-WWWWW-ZZZZZ

我尝试了stringToReplace.replaceAll(".*Universit.*", "Universita"); 之类的解决方案,但它用单词“Universita”替换了所有字符串,这不是我想要的。

【问题讨论】:

  • 这个特殊字符是 Universit 唯一可以结束的方式,还是有不同的用途?也就是说,我们必须确认是那个角色吗?
  • 你是怎么得到�的?也许你应该退后几步,得到真正的角色。
  • 我正在读取文件。这个词是“大学”。
  • 要读取文件,您必须知道使用的字符集和编码。通常,您只会知道它是“平台默认设置”,并且程序会适应它,无论它是什么。如果您从其他人或系统获取文件,则必须有协议或规范。然后,您可以使用类似java.nio.file.Files.readAllLines(java.nio.file.Paths.get("file.txt"), java.nio.charset.Charset.forName("Windows-1252")) 的代码。用您知道要使用的文件的任何编码替换。

标签: java string replace str-replace


【解决方案1】:

另一种奇怪的方式..

String example = "XY_Universit�-WWWWW-ZZZZZ";
char ch = 65533; //find ascii of special char
System.out.println(example.replace(ch, 'a'));

【讨论】:

    【解决方案2】:

    你必须是 懒惰 :P

    使用:.*?XY_Universit. 仅选择第一个 XY_universit

    demo here

    【讨论】:

      【解决方案3】:
      public static void main(String[] args) throws IOException {
              String exp = "XY_Universit�-WWWWW-ZZZZZ";
              exp = exp.replaceAll("[^\\w\\s\\-_]", "");
              System.out.println(exp);
          }
      

      输出

      XY_Universit-WWWWW-ZZZZZ
      

      【讨论】:

        【解决方案4】:

        stringToReplace.replaceAll("Universit[^a]", "Universita")

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-09-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多