从Java中的String中删除非ASCII字符
我有一个包含非ASCII字符的URI,如:
http://www.abc.de/qq/qq.ww?MIval=typo3_bsl_int_Smtliste&p_smtbez=Schmalbl ttrigeSomerzischeruchtanb
如何从此URI中删除“ ”
我猜测URL的来源更有问题。 也许你正在解决错误的问题? 从URI中删除“奇怪”字符可能会给它一个完全不同的含义。
话虽如此,您可以通过简单的字符串替换删除所有非ASCII字符:
string fixed = original.replaceAll("[^\\x20-\\x7e]", "");
或者,如果不包含“ ”字符,则可以将其扩展为所有非四字节UTF-8字符:
string fixed = original.replaceAll("[^\\u0000-\\uFFFF]", "");
yourstring=yourstring.replaceAll("[^\\p{ASCII}]", "");
[^\x20-\x7E]
不不,这不是ASCII …… [^\x20-\x7E]
这是真实的ascii: [^\x00-\x7F]
否则它将删除作为ascii表一部分的换行符和其他特殊字符!
使用番石榴CharMatcher
String onlyAscii = CharMatcher.ascii().retainFrom(original)
要从String中删除非ASCII字符,下面的代码适合我。
String str =“616043287409”;
str = str.replaceAll(“[^ \ p {ASCII}]”,“”);
输出:616043287409
- 在方法中声明类 – 最终关键字
- 我的Codility MissingInteger Java解决方案有什么问题?
- 在Android中进行多部分文件上传的好方法
- java.lang.IndexOutOfBoundsException:charAt:-1 <0 in SpannableStringBuilder
- 将long(其十进制表示forms表示yyyyMMdd .. date)转换为其他日期格式
- Android JNI从Java类中获取Two Fields
- 如何在Java中获取节点中的元素文本?
- 使用KeyGenParameterSpec.Builder等效替换KeyPairGeneratorSpec – 密钥库操作失败
- Android设备到PC的套接字连接