知识大全 Java语言中字符的处理
Posted 字符
篇首语:惜时专心苦读是做学问的一个好方法。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java语言中字符的处理相关的知识,希望对你有一定的参考价值。
Java语言中字符的处理 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
摘要 本文主要讨论了Java语言中字符的特殊表达形式 尤其是中文信息的表达处理 阐述了字符处理的关键是要将十六位Unicode字符 转换为本地下层平台 也就是运行Java虚拟处理机的平台能够理解的字符形式 关键词 Java 字符 位 位 Unicode字符集 Java是一种编程语言 一个运行系统 一套开发工具和一个应用程序编程界面(API) Java建立在C++的熟悉 有用的特征之上 而取消了C++的复杂的 危险的和多余的元素 它是一个更安全 更简单 更容易使用的语言 Java的字符表达 Java语言和C语言对字符进行了互不相同的描述 Java使用 位的Unicode字符集(该标准描述了许多语言的各种不同字符) 因此Java字符是一个 位的无符号整数 字符变量用来存放单个字符 而不是完整的字符串 一个字符(character) 就是单个字母(letter) 许多字母构成一个单词 一组单词组成句子 以此类推 但是对于含有诸如中文信息的字符 就不是那么简单了 Java的基本的char类型被定义成无符号的 位 它是Java中唯一的一个无符号类型 使用 位表达字符的主要原因是要让Java能够支持任何Unicode字符 因此而使得Java适用于描述或显示任何被Unicode支持的语言 可移植性也就会更好 但是 能够支持某种语言的字符串显示 和能够正确打印某种语言的字符串 常常是两个不同的问题 由于Oak(Java最初的代号)开发组的主要环境是Unix系统和某些源于Unix的系统 所以对开发人员来说 最为方便实用的字符集是ISOLatin 相应地 这一开发组就带有Unix遗传性 也就导致了Java的I/O系统在很大程度上以Unix的流概念为模型 而在Unix系统中 每一种I/O设备都是用一串 比特的流来表示 这种在I/O系统方面取模于Unix的做法 使得Java语言拥有 位的Java字符 而却只有 位的输入设备 这样就给Java带来了些不足 因此在任何一处Java字符串按 位来读入或写出的地方 都得有一小段程序代码 被称为 劈(hack) 来将 位的字符映射成为 位Unicode 或将 位的Unicode劈成 位字符 问题及解决 我们要实现从一个文件读取信息 尤其是读取含有中文信息的文件 并将读取到的信息显示在屏幕上 一般我们使用FileInputStream函数打开文件 readChar函数读入字符 如下 import java io *; public class rf public static void main(String args[]) FileInputStream fis; DataInputStream dis; char c; try fis = new FileInputStream( xinxi txt ); dis = new DataInputStream(fis); while (true) c = dis readChar(); System out print(c); System out flush(); if (c == \\n ) break; fis close(); catch (Exception e) System exit( ); 但是事实上 运行这一程序 所能得到的输出结果是一堆无用的乱码 不能正确输出xinxi txt文件内容 其原因是readChar函数读入的是 位的Unicode字符 而System out print却将其当作八位的ISO latin 字符输出 Java 版本引入了一套全新的Readers和Writers接口来处理字符 我们可以利用InputStreamReader类而不是DataInputStream来处理文件 修改上面的程序如下 import java io *; public class rf public static void main(String args[]) FileInputStream fis; InputStreamReader irs; char ch; try fis = new FileInputStream( xinxi txt ); irs = new InputStreamReader(fis); while (true) ch = (char) irs read(); System out print(c); System out flush(); if (ch == \\n ) break; fis close(); catch (Exception e) System exit( ); 这样才能正确输出xinxi txt中的文本(尤其是中文信息) 另外 当xinxi txt文件来自不同的机器 即来自不同操作平台(或汉字内码不同)的机器 比如 文件来自客户端(客户端上传文件给服务器) 而读取文中信息的操作由服务器端执行 如果用上面的程序来实现这一功能 就有可能仍然不能得到正确的结果 其原因就是输入编码转换失败 我们还需要进行如下的改动 int c ; int j= ; StringBuffer str=new StringBuffer(); char lll[][]= new char[ ][ ]; String ll= ; try fis = new FileInputStream( fname txt ); irs = new InputStreamReader(fis); c =irs read(lll[ ] ); while (lll[ ][j]!= ) str append(lll[ ][j]); j=j+ ; ll=str toString(); System out println(ll); catch (IOException e) System out println(e toString()); 这样 输出的结果就正确了 当然 上面的程序是不完整的 只是说明了一下解决的方法 总之 Java语言中字符处理 尤其是中文信息的处理 比较特殊 在Java中 字符处理的关键是要将十六位Unicode字符 转换为本地下层平台也就是运行Java虚拟处理机的平台能够理解的字符形式 cha138/Article/program/Java/JSP/201311/19254相关参考
JAVA中去掉字符串空格各种方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Stringtr
Java中去除字符串中所有空格的几种方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! JAVA
我在一个项目中需要使用C:\\WINDOWS\\system\\drivers\\etc这个目录下的hosts文件并且在该文件的最后加上一个这样的字符串: r
浅析Java语言的事件处理快捷回复 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在JAVA程序
开发JAVA编程中字符串分割的两种方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 方法:采用
字符串操作无疑在各种编程语言及平台上都是必不可少的功能相通但用法却存在微妙的区别比如java中取子串及相等的判断切入正题 substring 常用的用法包括 ()取索引为startidx之后
Oracle字符集是一个字节数据的解释的符号集合有大小之分有相互的包容关系ORACLE支持国家语言的体系结构允许你使用本地化语言来存储处理检索数据它使数据库工具错误消息排序次序日期时间货币数字和日
一什么是oracle字符集 Oracle字符集是一个字节数据的解释的符号集合有大小之分有相互的包容关系ORACLE支持国家语言的体系结构允许你使用本地化语言来存储处理检索数据它使数据库工具错误消
Java精确截取字符串 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Java精确截取字符串取得
Java编程语言中的口令屏蔽 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 目前对于Java命令