在Java中替换字符串中的特殊字符

fslejnso  于 2023-02-02  发布在  Java
关注(0)|答案(4)|浏览(245)

在Java中如何替换字符串?
例如:

String a = "adf�sdf";

如何替换和避免特殊字符?

wn9m85ua

wn9m85ua1#

您可以使用String#replaceAll(),通过将模式[^\\x20-\\x7e]替换为空字符串,来删除可打印ASCII范围之外的所有字符:

a = a.replaceAll("[^\\x20-\\x7e]", "");

但这实际上并不能解决你的实际问题。它更多的是一种变通方法。根据给定的信息,很难确定这个问题的根本原因,但阅读这两篇文章中的任何一篇肯定会有很大帮助:

vwhgwdsa

vwhgwdsa2#

如果不了解更多的背景情况,就很难回答这个问题。
一般来说,您可能会遇到编码问题。有关字符编码的概述,请参阅**The Absolute Minimum Every Software Developer (...) Must Know About Unicode and Character Sets**。

qlzsbp2j

qlzsbp2j3#

假设你想删除所有的特殊字符,你可以使用字符类\p{Cntrl},然后你只需要使用下面的代码:

stringWithSpecialCharcters.replaceAll("\\p{Cntrl}", replacement);
n9vozmp4

n9vozmp44#

您可以使用Unicode转义序列(如\u201c [一个左曲引号])来“避免”不能直接用于源文件编码(默认为您的平台的默认编码,但您可以使用-encoding参数将其更改为javac)的字符。

相关问题