我的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
答案 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","");
这将删除除字母,数字和下划线之外的所有内容。