亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Java語言中字符的處理

2019-11-18 13:24:23
字體:
來源:轉載
供稿:網友

  ----摘要:本文主要討論了java語言中字符的非凡表達形式,尤其是中文信息的表達處理,闡述了字符處理的要害是要將十六位Unicode字符,轉換為本地下層平臺,也就是運行Java虛擬處理機的平臺能夠理解的字符形式。
  ----要害詞:Java、字符、8位、16位、Unicode字符集
  
  ----Java是一種編程語言、一個運行系統、一套開發工具和一個應用程序編程界面(API)。Java建立在C++的熟悉、有用的特征之上,而取消了C++的復雜的、危險的和多余的元素。它是一個更安全、更簡單、更輕易使用的語言。
  
  1、Java的字符表達
  
  ----Java語言和C語言對字符進行了互不相同的描述,Java使用16位的Unicode字符集(該標準描述了許多語言的各種不同字符),因此Java字符是一個16位的無符號整數,字符變量用來存放單個字符,而不是完整的字符串。
  
  ----一個字符(character),就是單個字母(letter),許多字母構成一個單詞,一組單詞組成句子,以此類推。但是對于含有諸如中文信息的字符,就不是那么簡單了。
  
  ----Java的基本的char類型被定義成無符號的16位,它是Java中唯一的一個無符號類型。使用16位表達字符的主要原因是要讓Java能夠支持任何Unicode字符,因此而使得Java適用于描述或顯示任何被Unicode支持的語言,可移植性也就會更好。但是,能夠支持某種語言的字符串顯示,和能夠正確打印某種語言的字符串,經常是兩個不同的問題。由于Oak(Java最初的代號)開發組的主要環境是Unix系統和某些源于Unix的系統,所以對開發人員來說,最為方便實用的字符集是ISOLatin-1。相應地,這一開發組就帶有Unix遺傳性,也就導致了Java的I/O系統在很大程度上以Unix的流概念為模型,而在Unix系統中,每一種I/O設備都是用一串8比特的流來表示。這種在I/O系統方面取模于Unix的做法,使得Java語言擁有16位的Java字符,而卻只有8位的輸入設備,這樣就給Java帶來了些不足。因此在任何一處Java字符串按8位來讀入或寫出的地方,都得有一小段程序代碼,被稱為"劈(hack)",來將8位的字符映射成為16位Unicode,或將16位的Unicode劈成8位字符。
  
  2、問題及解決
  
  ----我們要實現從一個文件讀取信息,尤其是讀取含有中文信息的文件,并將讀取到的信息顯示在屏幕上,一般我們使用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(0);
   }
  }
  
  ----但是事實上,運行這一程序,所能得到的輸出結果是一堆無用的亂碼。不能正確輸出xinxi.txt文件內容,其原因是readChar函數讀入的是16位的Unicode字符,而System.out.print卻將其當作八位的ISO latin-1字符輸出。
  
  ----Java 1.1版本引入了一套全新的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(0);
   }
  }
  
  ----這樣才能正確輸出xinxi.txt中的文本(尤其是中文信息)。另外,當xinxi.txt文件來自不同的機器,即來自不同操作平臺(或漢字內碼不同)的機器,比如: 文件來自客戶端(客戶端上傳文件給服務器),而讀取文中信息的操作由服務器端執行。假如用上面的程序來實現這一功能,就有可能仍然不能得到正確的結果。其原因就是輸入編碼轉換失敗,我們還需要進行如下的改動:
  
  
   ......
   int c1;
   int j=0;
   StringBuffer str=new StringBuffer();
   char lll[][]= new char[20][500];
   String ll="";
   try {
   fis = new FileInputStream("fname.txt");
   irs = new InputStreamReader(fis);
   c1=irs.read(lll[1],0,50);
   while (lll[1][j]!=' ') {
   str.append(lll[1][j]);
   j=j+1;
   }
   ll=str.toString();
   System.out.println(ll);
   } catch (IOException e) {
   System.out.println(e.toString());}
   ......
  
  ----這樣,輸出的結果就正確了。當然,上面的程序是不完整的,只是說明了一下解決的方法。
  
  ----總之,Java語言中字符處理,尤其是中文信息的處理,比較非凡。在Java中,字符處理的要害是要將十六位Unicode字符,轉換為本地下層平臺也就是運行Java虛擬處理機的平臺能夠理解的字符形式。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品欧美一区二区三区奶水| 欧美视频精品一区| 91精品国产亚洲| 国产免费观看久久黄| 欧美午夜精品久久久久久人妖| 国产精品久久久久国产a级| 久99久在线视频| 亚洲成人av片| 亚洲免费高清视频| 国语自产偷拍精品视频偷| 大伊人狠狠躁夜夜躁av一区| 成人激情av在线| 国产一区二区成人| 狠狠躁夜夜躁人人躁婷婷91| 精品久久久国产| 国产精品视频资源| 亚洲精品小视频| 日韩在线观看免费| 一道本无吗dⅴd在线播放一区| 久久五月天色综合| 自拍亚洲一区欧美另类| 欧美大片在线免费观看| 国外色69视频在线观看| 欧美精品日韩www.p站| 日本精品一区二区三区在线播放视频| 欧美一级在线播放| 成人97在线观看视频| 69影院欧美专区视频| 亚洲欧美日韩成人| 日韩在线视频免费观看高清中文| 亚洲91精品在线观看| 在线观看中文字幕亚洲| 欧美—级a级欧美特级ar全黄| 亚洲一品av免费观看| 欧美日韩国产丝袜另类| 欧美日韩中文字幕| 一区二区欧美在线| 久久久国产成人精品| 久久69精品久久久久久国产越南| 国产精品久久久久久网站| 91成品人片a无限观看| 亚洲免费电影在线观看| 国产成人+综合亚洲+天堂| 中文字幕精品一区二区精品| 69**夜色精品国产69乱| zzijzzij亚洲日本成熟少妇| 国产成人亚洲综合91| 91在线视频免费| 成人免费淫片视频软件| 亚洲精选在线观看| 日韩av在线免费观看一区| 亚洲一区二区精品| 成人在线观看视频网站| 久久久久久久影视| 91免费看视频.| 亚洲人成网站777色婷婷| 国产精品18久久久久久首页狼| 亚洲一级黄色av| 日韩精品久久久久久久玫瑰园| 国产精品爽爽爽| 欧亚精品在线观看| 波霸ol色综合久久| 高清欧美性猛交| 91高潮精品免费porn| 国产精品海角社区在线观看| 欧美激情精品久久久久久黑人| 国产精品午夜国产小视频| 亚洲aa中文字幕| 亚洲美女激情视频| 97在线视频免费看| 久久久久亚洲精品| 欧美韩国理论所午夜片917电影| 亚洲高清不卡av| 国产亚洲一区二区精品| 欧美视频裸体精品| 神马国产精品影院av| 欧美亚洲在线播放| 欧美极品少妇xxxxⅹ喷水| 成人a级免费视频| 成人网在线免费观看| 91人成网站www| 91九色单男在线观看| 亚洲网站在线播放| 91视频国产一区| 欧美精品福利视频| 亚洲精品国产精品久久清纯直播| 国产精品视频自拍| 国产精品青青在线观看爽香蕉| 欧美高清视频在线观看| 亚洲精品少妇网址| 亚洲欧洲日本专区| 欧美综合国产精品久久丁香| 国产日韩欧美在线| 中文字幕精品在线| 中日韩午夜理伦电影免费| 久久久亚洲福利精品午夜| 久久久久久久久久久av| 欧美成人合集magnet| 欧美性xxxx在线播放| 97视频国产在线| 最近更新的2019中文字幕| 欧美中文字幕第一页| 日韩美女免费线视频| 日韩成人激情在线| 久久国产精品免费视频| 97视频人免费观看| 91精品国产高清久久久久久| 亚洲一区二区三区四区在线播放| 国产日韩精品入口| 亚洲福利影片在线| 亚洲另类欧美自拍| 久久精品99久久久久久久久| 亚洲国产精久久久久久久| 色先锋久久影院av| 欧美日韩一二三四五区| 亚洲经典中文字幕| 俺也去精品视频在线观看| 国产精品久久久久av免费| 欧美日韩亚洲高清| 久久精品国产精品| 日韩免费在线看| 这里只有精品在线观看| 国产精品视频久久久| 亚洲成avwww人| 精品美女永久免费视频| 亚洲第一精品夜夜躁人人爽| 欧美极品欧美精品欧美视频| 亚洲jizzjizz日本少妇| 91av网站在线播放| 日韩hd视频在线观看| 久久久精品在线观看| 91精品久久久久久久久久| 亚洲精品永久免费精品| 亚洲另类图片色| 日韩一区二区三区在线播放| 国产丝袜一区视频在线观看| 国产免费一区视频观看免费| 国产精品18久久久久久首页狼| 欧美亚洲伦理www| 欧美中文在线字幕| 中文字幕日韩av综合精品| 大桥未久av一区二区三区| 91精品久久久久久久久| 超薄丝袜一区二区| 97色伦亚洲国产| 国产精品久久久久久一区二区| 久久艹在线视频| 亚洲午夜未满十八勿入免费观看全集| 久久久精品国产网站| 久久久久久12| 在线播放精品一区二区三区| 久久久亚洲影院| 成人精品久久一区二区三区| 91成人在线观看国产| 欧美性20hd另类| 国产69精品久久久久9999| 91精品国产色综合久久不卡98口| 欧美综合国产精品久久丁香| 日韩av在线网页| 91精品国产综合久久香蕉的用户体验| 久久艳片www.17c.com| 亚洲一区二区三区成人在线视频精品| 亚洲一区二区自拍| 久久国产精品久久久久久|