1

我的 Java 程序中有一个从数据库读取的字符串。

这可能包含以下特殊字符:

特殊字符

我想忽略字符串中的所有此类特殊字符,以便最终字符串应仅包含字母数字字符(或者如果可能,仅包含属于特定编码的字符,例如 UTF-8 等)。

firm->s在输出字符串中将成为行。

如何从输入字符串中删除除普通字母数字字符(或特定编码)之外的所有特殊字符以输出字符串?

<?xml version="1.0" encoding="UTF-8"?>
<StartXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="abcXYZ.xsd">
<MyTag>Gebrüder Leipzig→s</MyTag>
</StartXML>

错误是:

Extra content at the end of the document Leipzig
4

3 回答 3

10

您可以使用String#replaceAll

myStr = myStr.replaceAll("[^a-zA-Z0-9]+", "")

^ 就是说:“将所有不在指定范围内的字符保留在方括号内”。

于 2013-10-16T06:33:13.733 回答
5

试试正则表达式,

String result= yourString.replaceAll("[^a-zA-Z0-9]+","");

这给了你result只有Alpha Numeric

如果你只想要字母

String resultWithAlphabetsOnly= yourString.replaceAll("[^a-zA-Z]+",""); 
于 2013-10-16T06:33:52.127 回答
1

我会写

theString.replaceAll("\\W","");

这将删除除字母、数字和下划线之外的所有内容。

于 2013-10-16T06:49:06.693 回答