从字符串中删除特殊字符

时间:2013-10-16 06:31:26

标签: java

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

这可能包含两者之间的特殊字符,如下所示:

  

Special Character

我想忽略字符串中的所有这些特殊字符,使得最终字符串应该只有字母数字字符(或者如果可能的话,只有属于特定编码的字符,例如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

3 个答案:

答案 0 :(得分:10)

您可以使用String#replaceAll

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

^ is saying:“保留方括号内不在指定范围内的所有字符”。

答案 1 :(得分:5)

试试正则表达式,

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

这样,result只有 Alpha数字

如果您只想要 Alphabets

String resultWithAlphabetsOnly= yourString.replaceAll("[^a-zA-Z]+",""); 

答案 2 :(得分:1)

我会写

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

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