`
这些年
  • 浏览: 397866 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

处理字符的全角半角

    博客分类:
  • java
阅读更多

 

方法一:

 

测试代码如下:
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

 

分类: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. }   

 

 

 

分享到:
评论

相关推荐

    C++全角半角字符转换

    C++全角半角字符转换

    对全角半角字符串的处理

    ### 对全角半角字符串的处理 在计算机编程与数据处理领域中,全角和半角字符的区别及其转换是一项常见的需求。特别是在东亚语言环境中(如中文、日文、韩文等),这种转换对于文本处理至关重要。 #### 全角与半角...

    字符串的全角半角转换 java

    在Java编程中,字符串的全角半角转换是一项常见的需求,尤其在处理用户输入或文本显示时。全角字符和半角字符的区别在于他们的宽度和编码方式。全角字符(全宽度字符)通常用于东亚语言,如中文、日文、韩文等,每个...

    日文全角半角转化

    在计算机编程中,日文全角半角转换是非常重要的一步,因为它可以确保日文字符的正确显示和处理。 在 Java 编程语言中,我们可以使用以下几种方法来实现日文全角半角转换: 1. 使用 Unicode 代码点来实现全角半角...

    全角半角转换函数.txt

    综上所述,全角半角转换函数在文本处理领域具有重要的实用价值,尤其在东亚语言环境中,对于确保文本正确显示、计算和对齐具有不可或缺的作用。通过对上述函数的理解和应用,可以有效提升软件产品的国际化水平和用户...

    pb全角转半角

    2. 使用字符串处理函数,例如`SubString`,逐个字符处理字符串。 3. 检查每个字符的Unicode值,如果在全角字符范围内(通常是0x2126到0x215F,以及0xFF01到0xFFEF),则将其减去偏移量(比如0xFEE0)得到相应的半角...

    全角半角转换,c++

    全角半角转换在处理多语言文本数据时是一项基本且重要的技术,尤其是在C++等编程语言中。通过理解字符编码原理并应用适当的转换逻辑,可以有效地处理文本数据,确保其格式正确无误。上述代码示例展示了如何在C++中...

    C#实现字符串全角半角转换类

    这个`CharConverter`类提供了简洁的API,可以方便地集成到任何C#项目中,用于处理全角半角字符的转换需求。通过理解字符编码和Unicode码点,我们可以更好地理解和实现这类转换功能,这对于开发涉及多语言或特殊字符...

    viedo stuido 全角半角的小补丁

    对于视频编辑软件Viedo Studio来说,正确处理全角半角字符关系到用户界面的显示效果以及文件名的规范性,因此“Viedo Studio 全角半角的小补丁”显得尤为重要。本文将深入探讨这个补丁的作用、功能以及如何应用,...

    postgres全角转半角函数.txt

    对postgresql数据库中不规则的数据批量处理查询,有些是全角的,需要转换查询,匹配,可以使用这个方法postgres全角转半角函数.txt

    C#全角半角相互转换!

    在编程领域,尤其是在处理字符和字符串时,全角和半角字符的概念是非常重要的。全角字符和半角字符主要的区别在于它们所占用的字节空间和显示的宽度。全角字符通常用于中文、日文、韩文等东亚语言,每个字符占用两个...

    Flex 日语全角半角转换

    标题中的“Flex 日语全角半角转换”指的是在Adobe Flex这一编程环境中处理日语文本时,涉及到全角字符(全宽度字符)和半角字符(半宽度字符)的转换问题。在日语中,全角字符通常用于正式文本,而半角字符则常见于...

    全角半角转换工具,编程后发现问题时可以对大把的程序改变,不必再一个一个手动修改,很方便!

    总结来说,全角半角转换工具是一种便捷的文本处理工具,它帮助程序员和文本工作者快速修正因全角半角字符误用引起的问题,提高工作效率,避免因手动修改带来的错误风险。在处理大量文本数据时,这类工具显得尤为实用...

    半角与全角字符的转换

    在中文字符处理中,半角(SBC)与全角(DBC)字符转换是一个常见的需求。本文将详细介绍半角与全角字符的基本概念、特点以及如何进行相互转换。 #### 半角与全角字符的概念 1. **半角字符**:通常指的是ASCII码中...

    java 全角半角字符转换的方法实例

    java 全角半角字符转换是 Java 编程语言中一个常见的问题,许多开发者在编程时需要处理全角半角字符之间的转换,这篇文章将详细介绍 Java 中全角半角字符转换的方法和实现。 Java 中的全角字符和半角字符 在 Java...

    字符串,标点符号全角半角转换

    在IT领域,特别是编程与文本处理中,全角与半角字符的转换是一个常见的需求,尤其是在东亚语言环境中,如中文、日文、韩文中。全角(Full Width)与半角(Half Width)字符的区别主要在于宽度和编码上。半角字符通常...

    解决.NET2.0全角半角转换麻烦的补丁

    在.NET 2.0开发环境中,程序员经常遇到全角半角字符转换的问题,尤其是在处理文本输入、输出或者格式化时。全角字符和半角字符在处理上有所不同,因为它们在计算机内部占用的字节数不同。全角字符通常用于中文、日文...

    java全角半角转换程序

    3. **异常处理**:在处理字符编码转换时,可能会遇到不支持的编码异常,因此在代码中加入异常处理机制是非常重要的。 4. **性能优化**:虽然示例代码能够实现功能,但在实际应用中,考虑到性能优化,可以考虑使用更...

    VS2005全角半角切换补丁.rar

    标题“VS2005全角半角切换补丁.rar”指的是针对Visual Studio 2005(简称VS2005)的一个特定补丁,该补丁旨在解决在使用该IDE进行编码时遇到的全角和半角字符切换问题。在编程中,全角和半角字符的区别至关重要,...

    MySQL存储全角字符和半角字符的区别

    在MySQL中,字符数据类型如`CHAR`、`VARCHAR`等是用来存储文本信息的,它们会根据选择的字符集来处理字符。对于半角字符,通常指的是ASCII字符,每个字符占用1个字节的空间。而全角字符,比如中文、日文或韩文等,...

Global site tag (gtag.js) - Google Analytics