`

全角转半角,JAVA对中文的处理

    博客分类:
  • JAVA
阅读更多

 最近在做中文处理时,遇到了 全角半角 转换的问题,于是到网上搜了一下,问题基本上得到解决,但是发现没有对全角空格,和半角空格做转换处理,而且 半角转全角的代码有bug,下面是修改后的代码:

 

// FullCharConverter.java
import java.io.UnsupportedEncodingException;

public class FullCharConverter {

     
 public static void main(String[] args) throws UnsupportedEncodingException {
     
    // 全角转半角 
    String QJstr="hello!! 全角转换,DAO 53232 ";
       String result=full2HalfChange(QJstr);
       
       System.out.println( QJstr ); 
       System.out.println( result ); 
      
       System.out.println( "------------------------------------" );
       
       // 半角转全角
  String str = "java 汽车 召回 2345";
  System.out.println( str );
  System.out.println( half2Fullchange( str ) );
  
  }
  
  // 全角转半角的 转换函数
  public static final String full2HalfChange(String QJstr)
      throws UnsupportedEncodingException {
      
      StringBuffer outStrBuf = new StringBuffer("");
      String Tstr="";
      byte[] b=null;

      for(int i=0;i < QJstr.length();i++ ) {     
       
        Tstr=QJstr.substring(i,i+1);
        
        // 全角空格转换成半角空格
        if ( Tstr.equals(" ") ){
         outStrBuf.append( " " );
         continue;
        }
        
        b=Tstr.getBytes("unicode"); // 得到 unicode 字节数据
          
       if (b[3]==-1) { // 表示全角?
        b[2]=(byte)(b[2]+32);
        b[3]=0;
         
        outStrBuf.append( new String(b,"unicode") );
       }else {
      outStrBuf.append( Tstr );
       }
       
      } // end for.
     
      return outStrBuf.toString(); 
   }

  //  半角转全角
  public static final String half2Fullchange(String QJstr) throws UnsupportedEncodingException {
   StringBuffer outStrBuf = new StringBuffer("");
   String Tstr = "";
   byte[] b = null;
 
   for (int i = 0; i< QJstr.length(); i++) {
  
    Tstr = QJstr.substring(i, i + 1);
    if ( Tstr.equals(" ") ){//半角空格
     outStrBuf.append( Tstr );
     continue;
    }
    
    b = Tstr.getBytes("unicode");
    
    if ( b[3] == 0 ){ // 半角?
     b[2] = (byte)(b[2] - 32);
     b[3] = -1;
     outStrBuf.append( new String(b, "unicode") );
    } else {
     outStrBuf.append( Tstr );
    }
    
//    if (b[3] != -1) {
//     b[2] = (byte)(b[2] - 32);
//     b[3] = -1;
//     outStrBuf.append( new String(b, "unicode") );
//    } else {
//      outStrBuf.append( Tstr );
//    }
   
   }
   
   return outStrBuf.toString();
  }
}

 

分享到:
评论

相关推荐

    字符串的全角半角转换 java

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

    日语全角转半角

    将日语全角转为半角

    java 全角半角转换

    java 全角半角转换 对角对全角的转换

    java全角字符和半角字符转换

    解决任何情况下的全角、半角字符转化问题,有效的控制程序中出现全角半角问题。方法简单,易懂。

    日文全角半角转化

    "日文全角半角转化" 日文全角半角转换是指将日文中的全角字符转换为半角字符或将半角...在 Java 中,我们可以使用多种方法来实现日文全角半角转换,包括使用 Unicode 代码点、Java 字符串处理函数和 third-party 库。

    全角半角字符串转换工具类Character.java

    全角转半角,半角转全角,全角半角字符串转换工具类Character.java

    对全角半角字符串的处理

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

    Java输入法中全角转半角工具类

    Java输入法中全角转半角工具类: 适用于文件上传,Excel上传输入法格式不对导致的数据不对,通通过滤掉

    JAVA全角和半角的转换代码

    JAVA的全角和半角的转换代码 、JAVA全角和半角的转换代码

    java正则表达式匹配全角空格

    本文将详细介绍如何使用Java中的`split()`方法,并结合正则表达式来处理全角空格和半角空格的问题。 #### 一、背景介绍 在处理文本数据时,经常会遇到不同类型的空格字符。除了最常见的半角空格(ASCII码为32)...

    java 全角半角字符转换如何实现

    本篇文章将详细介绍如何在Java中实现全角半角字符的转换。 首先,我们需要了解全角和半角字符的对应关系。全角字符的范围是从65281(全角"!")到65374(全角"~"),它们相对于ASCII表中的对应半角字符(从33到126...

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

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

    java全角半角转换程序

    ### Java全角半角转换程序知识点详解 #### 核心概念 在计算机处理文本时,全角字符和半角字符是常见的编码问题。全角字符主要用于东亚语言(如中文、日语、韩语等),其宽度通常是半角字符的两倍。在ASCII码中,...

    Split-由任意个全角或半角空格分隔开的任意长度的字符串

    在处理中文文本时,全角空格常见于中文文档或用户输入,而半角空格则更常用于英文或其他拉丁字母为基础的文本。 在数据库编程中,多个关键字模糊查询时,我们可能需要将用户的输入(如搜索关键词)拆分,然后对每个...

    java全角、半角字符的关系以及转换详解

    Java全角、半角字符的关系以及转换详解 Java中全角字符和半角字符之间的关系是一个很重要的知识点,搞明白了他们之间的关系,那么他们之间的转换就不是一个问题了。下面我们来详细介绍Java中全角字符和半角字符之间...

    javascript实现全角转半角的方法

    本文实例讲述了javascript实现全角转半角的方法。分享给大家供大家参考,具体如下: function fullChar2halfChar(str) { var result = ''; for (i=0 ; i&lt;str xss=removed&gt;= 65281 && code &lt;= 65373)//在这个...

    全角数字转换半角数字工具 v1.0版

    全角数字转换半角数字工具 v1.0版  使用指南  1.将带有全角数字的新闻(Ctrl+C)复制,在(Ctrl+V)粘贴到上面文本框内。  2.点击替换按钮,程序会自动转换成半角数字,拷贝到下面文本框内。  3.使用滚动条...

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

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

    java中字符进行全角半角转换示例代码

    在Java编程语言中,全角和半角字符的转换是一个常见的需求,特别是在处理文本输入、输出或格式化时。全角字符(SBC)占据两个字节,而半角字符(DBC)则只占一个字节。在ASCII编码中,全角字符的范围通常是从65281到...

    asp(javascript)全角半角转换代码 dbc2sbc

    标题提到的"asp(javascript)全角半角转换代码 dbc2sbc"是指两种不同语言环境下实现的全角到半角、半角到全角的转换函数。ASP(Active Server Pages)是微软开发的一种服务器端脚本语言,而JavaScript则是一种广泛...

Global site tag (gtag.js) - Google Analytics