全角和半角之间的互相转换。

ASCII的一些知识。

\n 回车换行

\t 横向跳到下一制表位置

\v 竖向跳格

\b 退格

\r 回车

\f 走纸换页

\\ 反斜线符"\"

\' 单引号符

\ddd 1~3位八进制数所代表的字符

\xhh 1~2位十六进制数所代表的字符

空格的ASCII是32,转换为16进制是x20,使用转义字符为 \x20

ASCII码表

下面贴代码,在参考别人的基础上另作整理。

package com.kongming.someuseful;

/**

* @author ACER

*

* 实现对字符串中全角字符和半角字符的互相转换

*/

public class QuanJiao_BanJiao_Transform {

// ASCII表中可见字符从!开始,值为33(Decimal),半角对应字符为 !

static final char DBC_CHAR_START = 33;

// ASCII表中可见字符到~结束,值为126(Decimal),半角对应字符为 ~

static final char DBC_CHAR_END = 126;

// 全角对应于ASCII表的可见字符从!开始,值为65281 ,全角对应字符为 !

static final char SBC_CHAR_START = 65281;

// 全角对应于ASCII表的可见字符到~结束,值为65374,全角对应字符为 ~

static final char SBC_CHAR_END = 65374;

// ASCII表中除空格外的可见字符与对应的全角字符的相对偏移,全角半角转换偏移量为65248

static final int CONVERT_STEP = 65248;

// 全角空格的值,没有遵循上面说的ASCII的相对偏移量,必须单独处理,全角空格 ASCII值为12288

static final char SBC_SPACE = 12288;

// 半角空格的值,ASCII值为32(Decimal),半角空格 ' '

static final char DBC_SPACE = 32;

/**

* --半角字符转为全角字符

*

* @param src

* 包含半角字符的字符串

* @return 返回全角字符的字符串

*/

public static String bj2qj(String src) {

if (src == null) {

return src;

}

StringBuilder buf = new StringBuilder(src.length());

char[] ca = src.toCharArray();

for (int i = 0; i < ca.length; i++) {

// 如果是半角空格,直接用全角空格替代

if (ca[i] == DBC_SPACE) {

buf.append(SBC_SPACE);

// 字符是!到~之间的可见字符

} else if ((ca[i] >= DBC_CHAR_START) && (ca[i] <= DBC_CHAR_END)) {

buf.append((char) (ca[i] + CONVERT_STEP));

// 不对空格以及ascii表中其他可见字符之外的字符做任何处理

} else {

buf.append(ca[i]);

}

}

return buf.toString();

}

/**

* --全角字符转为半角字符

*

* @param src

* 包含全角字符的字符串

* @return 返回半角字符的字符串

*/

public static String qj2bj(String src) {

if (src == null) {

return src;

}

StringBuilder buf = new StringBuilder(src.length());

char[] ca = src.toCharArray();

for (int i = 0; i < src.length(); i++) {

// 如果位于全角!到全角~区间内

if (ca[i] >= SBC_CHAR_START && ca[i] <= SBC_CHAR_END) {

buf.append((char) (ca[i] - CONVERT_STEP));

// 如果是全角空格

} else if (ca[i] == SBC_SPACE) {

buf.append(DBC_SPACE);

// 不处理全角空格,全角!到全角~区间外的字符

} else {

buf.append(ca[i]);

}

}

return buf.toString();

}

// 测试

public static void main(String[] args) {

String qj = "kmsocial,周杰。. -。-";

String bj = "kmsocial,周杰. -.-";

String qj2bj = QuanJiao_BanJiao_Transform.qj2bj(qj);

String bj2qj = QuanJiao_BanJiao_Transform.bj2qj(bj);

System.out.println("转换前:" + qj + "\n转换后:" + qj2bj);

System.out.println("转换前:" + bj + "\n转换后:" + bj2qj);

}

}

linux将文件内容全角转半角,字符串半角全角互转详解相关推荐

  1. Linux查找文件内容

    2019独角兽企业重金招聘Python工程师标准>>> Linux查找文件内容 使用vim命令查找文件内容 我们可以使用/string命令来向前(Forward)查找字符串strin ...

  2. Linux清空文件内容的三种方法

    Linux清空文件内容的三种方法 测试文件:a.txt 第一种: $> a.txt 第二种: $echo "" > a.txt 第三种: $cat /dev/null ...

  3. linux清空文件内容的几种方式与区别

    虽然linux清空文件内容的方式有很多种,但是他们之间有着细微的差别.通过实践我将他们分为两类: 将文件清空,文件大小为0k $ : > filename  $ > filename  $ ...

  4. Linux查看文件内容命令:cat, tail, head, more, less

    Linux查看文件内容命令:cat, tail, head, more, less cat 直接显示整个文件. cat直接显示全部文件内容,没有换页等交互. cat filename more mor ...

  5. linux 查找html文件,linux查找文件内容包含

    如何在Linux下查找文件内容包含某个特定字符串的文件 怎样在Linux下查找文件内容包含某个特定字符串的文如何在Linux下查找文件内容包含某个特定字符串的文件? 我的目录下面有test1和test ...

  6. Linux查看文件内容的6种命令

    链接一(6种): Linux中几种常用的查看文件内容的命令(file,cat,more,less,head,tail) - 空谷幽兰~泊逸 - 博客园Linux中有几个命令可以查看文件的内容,而不需要 ...

  7. linux检查新增文件,linux查看文件内容

    linux查看文件内容 cat  由第一行开始显示档案内容 tac  从最后一行开始显示,可以看出 tac 是 cat 的倒着写! nl  显示的时候,顺道输出行号! more 一页一页的显示档案内容 ...

  8. linux清除文件内容 ,Linux清除文件内容的几种方法

    # 清空或删除大文件内容的五种方法: # 法一:通过重定向到 Null 来清空文件内容 $ >test.sh # 法二:使用 'true' 命令重定向来清空文件 $ true > test ...

  9. python excel库pip install_超全整理|Python 操作 Excel 库 xlwings 常用操作详解!

    原标题:超全整理|Python 操作 Excel 库 xlwings 常用操作详解! 来源:早起Python 作者:陈熹.刘早起 大家好,我是早起. 在之前的文章中我们曾详细的讲解了如何使用openp ...

  10. python 文件读写with open模式r,r+ w,w+ a,a+区别详解

    python 文件读写with open模式r,r+ w,w+ a,a+区别详解 python中的 with open主要要来进行文件读写的操作 在 Python 中使用文件的关键函数是 open() ...

最新文章

  1. 关于如何在pc端使用github
  2. 如何释放 DB_RECOVERY_FILE_DEST_SIZE
  3. SQL中truncate table和delete的区别
  4. 05_传智播客iOS视频教程_类对象的使用
  5. mit oracle hd120,【出】MIT Oracle Matrix HD100 喇叭线 10呎
  6. 体育直播软件发展的三个阶段
  7. sklearn自学指南(part31)--半监督学习
  8. c语言二进制转十六进制编程,哪位大神有 二进制转十六进制C语言程序
  9. matlab ,python,c++关于格式化输出数字的表达
  10. python之字符串连接
  11. 高品质UI设计模板|PSD下载,设计师的最佳临摹素材
  12. 清华排名首登亚洲第一,今年财务预算300亿
  13. hive對於數據是懶加載的_05-配置数据库的远程连接 创建hive数据库的时候要选择latin1...
  14. 桌面支持--outlook会议邀请(选择可选参加的领导)
  15. 《自己动手写网络爬虫》读书笔记——宽度优先爬虫和带偏好的爬虫
  16. Android 车载应用开发与分析(12) - SystemUI (一)
  17. java播放mp3/ogg/ape/flac音乐
  18. virtual box ubuntu20.04 ros安装摄像头驱动
  19. linux 开发面试---基础题1
  20. 和自然语言处理有关的英语_自然语言处理对非英语语言的重要性

热门文章

  1. python计算二次方程的实根
  2. IOS开发教程第一季之02UI进阶day8合并IOS学习019--敲击、长按、轻扫、旋转,CALayer、锚点,CADisolayLink刷新,核心动画,关键帧动画,组动画,转场动画,画板案例
  3. linux中kill命令默认发出的信号,linux中的kill命令的详细解释
  4. java计算机毕业设计公司薪酬管理系统源码+mysql数据库+系统+lw文档+部署
  5. Mac 上 设置 语音呼出Siri
  6. 【STM32】FreeRTOS任务基础
  7. 你和阿里巴巴员工的编程水平差几个等级?
  8. bibtex参考文章类型
  9. keil C51如何下载stc固件库
  10. 网工学习 管理常用命令ipconfig ping tracert pathping ARP netstat route nslookup