如 “去符号标号!!当然。”过滤后变为“去符号标号当然”
解决方案 »
- 如何实现 触发某个事件后弹出新框架窗口,但原有的框架窗口就变成不活动的,必须关闭弹出的窗口原窗口才可用?
- Java系统锁 支持U盘锁和密码锁两种方式(附源代码)
- Java swt运行之后出现的错误,怎么解决呢?
- JAVA的 类,接口,抽象类 一般是怎么互相调用的?
- 在java中使用安全证书的问题
- tomcat中servlet加载错误
- 奇怪?
- 如何判断一个文件是否存在于某个目录或其子目录中?
- 请教使用什么开发环境
- 请详细解释一下java tm 和kjava是什么?谢谢
- 判断一个数是不是质数 - 用递归实现
- 急救:救急:急急救:java.io.IOException: 远程主机强迫关闭了一个现有的连接。是服务器端的问题呢?还是客户端的问题呢?
2.看这个字符串替换方法的应用环境,是大批量应用还是少量应用
少量应用就不用考虑效率,逐个replaceAll就可以了
大批量应用就把string转化为字符数组,逐个比较是否是标点符号。这样的好处是字符串只需要被扫描一遍。
public static void main(String... args) {
String str = "去符号标号!!当然。";
str = str.replaceAll("\\pP", "");
System.out.println(str);
}
}采用 Unicode 标点属性方式的正则表达式,可以去掉所有的标点符号,
包括全角、半角、横排、竖排等的标点符号。注意一下,如果在 JDK 5 或以下的环境中,全角单引号对、双引号对
无法替换掉,这是 JDK 5 及以下版本缺失的,在 JDK 6 中由于加入了
Pi 和 Pf 两个 Unicode 子属性,因此就能替换掉。在 JDK 6 以下的版本中可以这样:
str = str.replaceAll("[\\pP‘’“”]", "");
即手工加上去。
* @param args
*/
public static void main(String[] args) {
String s = "哈哈!@#W";
s = s.replaceAll("\\pP", "");
System.out.print(s); }}
果然好使 张知识啊~~感谢楼上
法一:(前面已经说了)
replaceAll("!","").replaceAll(".","")
法二:以下方法实现把字符串中的中文都抠出来String result="";
String sourceCode="\"去符号标号!!当然。\"";
String regex=(?<=“)[\u4e00-\u9fa5]*(?=”);
Matcher matcher=Pattern.compile(regrex).matcher(sourceCode);
while(matcher.find()){
result=sourceCode.substring(matcher.start(), matcher.end()).trim()
}
真强大~~~
static void replace(String regex,String input,String replace){
Pattern pa = Pattern.compile(regex);
Matcher match = pa.matcher(input);
System.out.println("replace all "+ match.replaceAll(replace));
}
main:replace("\\p{Punct}","你好aaaa,./09357*&^%#","");将输入字符传的标点符号换为“”;
char [] fuhao = {............这里是所有的符号,因为有全码半码所以不能用ASCI编码来判断,只能罗列出来..............};
String str = "fadaf;asdjfadsjf;sdaf";
String b = "";
for(int i =0 ; i < str.length() ; i++) {
boolean isFuhao = false;
char chStr = str.charAt(i);
for (int j = 0 ; j < fuhao.length;i++) {
if (fuhao[i] == chStr) {
isFuhao = true;
break;
}
}
if (!isFuhao) {
b = b+ chStr;
}
}
..大概就这么个逻辑,里边可能有什么写错的.随手写的..看思路吧...
public static void main(String[] args){
String s = “去符号标号!!当然。” ;
System.out.println(s.replaceAll("!",""));
}
}
哈哈,正则表达式
\p{Punct} Punctuation: One of !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
M:标记符号(一般不会单独出现);
Z:分隔符(比如空格、换行等);
S:符号(比如数学符号、货币符号等);
N:数字(比如阿拉伯数字、罗马数字等);
C:其他字符上面这七个是属性,七个属性下还有若干个子属性,用于更进一步地进行细分。Java 中用于 Unicode 的正则表达式数据都是由 Unicode 组织提供的。Unicode 正则表达式标准(可以找到所有的子属性)
http://www.unicode.org/reports/tr18/各 Unicode 字符属性的定义,可以用一看看某个字符具有什么属性。
http://www.unicode.org/Public/UNIDATA/UnicodeData.txt这个文本文档一行是一个字符,第一列是 Unicode 编码,第二列是字符名,第三列是 Unicode 属性,
以及其他一些字符信息。
正解