方法一:
测试代码如下:
class T {
public static void main(String... args) {
String str = "!!!!去符号标号!!当然。!!..**半角";
System.out.println(str);
System.out.println(str.replaceAll("\\p{Punct}", ""));
System.out.println(str.replaceAll("\\pP", ""));
}
}
运行结果
!!!!去符号标号!!当然。!!..**半角
!!去符号标号!!当然。半角
去符号标号当然半角
果子的解释
采用 Unicode 标点属性方式的正则表达式,可以去掉所有的标点符号,
包括全角、半角、横排、竖排等的标点符号。
注意一下,如果在 JDK 5 或以下的环境中,全角单引号对、双引号对
无法替换掉,这是 JDK 5 及以下版本缺失的,在 JDK 6 中由于加入了
Pi 和 Pf 两个 Unicode 子属性,因此就能替换掉。
在 JDK 6 以下的版本中可以这样:
str = str.replaceAll("[\\pP‘’“”]", "");
方法二:
分类:Java & J2EE2010-07-14 11:46470人阅读评论(1)收藏举报
[java]view plaincopyprint?
1. package com.eg.demo;
2.
3. /**
4. * 半角全角转换及替换半角全角空白
5. * @author maochangming
6.*/
7.public class Test {
8. public static void main(String[] args) throws Exception {
9. try {
10. //去首尾空格,不管是全角半角:
11. String s = "nihaohk nihehe ";
12. System.out.println("s.length=" + s.length());
13. // s = s.replaceAll("^//s*|//s*$", "");
14. s = s.replaceAll("(^[ | ]*|[ | ]*$)", "");
15. s = s.replaceAll(" ", "");
16. System.out.println("s.length=" + s.length());
17. System.out.println("s===" + s);
18.
19. String QJstr = "HELLO";
20. String QJstr1 = "HELLO";
21.
22. String result = BQchange(QJstr);
23. String result1 = QBchange(QJstr1);
24.
25. System.out.println(QJstr + "/n" + result);
26. System.out.println(QJstr1 + "/n" + result1);
27. } catch (Exception ex) {
28. throw new Exception("ERROR:" + ex.getMessage());
29. }
30. }
31.
32. /**
33. * 半角转全角
34. * @param QJstr
35. * @return
36. */
37. public static final String BQchange(String QJstr) {
38. String outStr = "";
39. String Tstr = "";
40. byte[] b = null;
41.
42. for (int i = 0; i < QJstr.length(); i++) {
43. try {
44. Tstr = QJstr.substring(i, i + 1);
45. b = Tstr.getBytes("unicode");
46. } catch (java.io.UnsupportedEncodingException e) {
47. e.printStackTrace();
48. }
49.
50. if (b[3] != -1) {
51. b[2] = (byte) (b[2] - 32);
52. b[3] = -1;
53. try {
54. outStr = outStr + new String(b, "unicode");
55. } catch (java.io.UnsupportedEncodingException e) {
56. e.printStackTrace();
57. }
58. } else
59. outStr = outStr + Tstr;
60. }
61.
62. return outStr;
63. }
64.
65. /**
66. * 全角转半角
67. * @param QJstr
68. * @return
69. */
70. public static final String QBchange(String QJstr) {
71. String outStr = "";
72. String Tstr = "";
73. byte[] b = null;
74.
75. for (int i = 0; i < QJstr.length(); i++) {
76. try {
77. Tstr = QJstr.substring(i, i + 1);
78. b = Tstr.getBytes("unicode");
79. } catch (java.io.UnsupportedEncodingException e) {
80. e.printStackTrace();
81. }
82.
83. if (b[3] == -1) {
84. b[2] = (byte) (b[2] + 32);
85. b[3] = 0;
86. try {
87. outStr = outStr + new String(b, "unicode");
88. } catch (java.io.UnsupportedEncodingException e) {
89. e.printStackTrace();
90. }
91. } else
92. outStr = outStr + Tstr;
93. }
94.
95. return outStr;
96. }
97.
98. }