【发布时间】:2019-03-28 09:14:09
【问题描述】:
如果一个字符串包含任何非 ASCII 值,我需要删除它。
我已经尝试过在 jdk 1.8 及更高版本上运行良好的 replaceAll mrthod。但我想在 jdk 1.6 上部署相同的,它是否不起作用。
String Remarks2 ="hii:╘’i";
String Remarks = Remarks2.replaceAll("[^\\p{ASCII}]", "");
System.out.println("ans: "+Remarks);
jdk 1.8 中的输出:hii:i jdk 1.6 中的输出:hii:╘'i
实际结果必须是 - hii:i
【问题讨论】:
-
请注意:“h”是一个 ASCII 字符。
-
你的意思是删除任何非ascii值吗?
-
您是否尝试过使用“[^\\x00-\\x7F]”而不是“[^\\p{ASCII}]”。也许“\p[ASCII}”在 1.6 中没有定义
-
\p{ASCII}在 Java 6 中定义,参见docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html -
@T.J.Crowder 谢谢。但我所了解的是,当您在键入字符代码时按住 ALT 时,我们可以生成 ascii 键。例如,要插入度数 (º) 符号,请在按住 ALT 的同时在数字键盘上键入 0176。当我们尝试通过 html 文本框中的输入字段存储相同内容时,有时人们也会从 excel 表中复制粘贴内容,从而导致架构发生变化。
标签: java string non-ascii-characters replaceall jdk1.6