Java 入門指南- 編碼 - 程式語言教學誌FB, YouTube: PYDOING

文章推薦指數: 80 %
投票人數:10人

編碼(encoding) 需要用到轉換表格,我們利用陣列(array) 儲存這個表格,簡單說,就是利用Unicode 排列順序,相對到表格的對應關係 上圖是用了如下的表格 網頁 導論 G+專頁 G+社群 FB粉絲團 FB社團 微博 YouTube Twitter GitHub 關於本站 意見提供或問題回報 新站 公告 《如何自學程式設計》入選GooglePlay台灣地區2016年度最佳書籍|本站於GooglePlay銷售電子書。

預計之後會調整本站內容,凡是有兩個版本的教材,舊版本將刪除。

------ Udemy|Python專案開發入門的二十一堂課|促銷優惠 Java入門指南-編碼 編碼(encoding)需要用到轉換表格,我們利用陣列(array)儲存這個表格,簡單說,就是利用Unicode排列順序,相對到表格的對應關係 上圖是用了如下的表格 cArray={'q','z','i','r','a', 'j','s','b','k','t', 'c','l','u','d','m', 'v','e','n','w','f', 'o','x','g','p','y', 'h'}; 對以下的字串(string)而言 "Thereisnospoon."; 我們先來想一想程式如何完成這一項工作,首先,'T'不是英文小寫字母,因此跳過,然後'h'、'e'、'r'、'e'都是英文小寫字母,對照表格,需要轉換為'b'、'a'、'n'、'a',接下來遇到一個空格字元'',也跳過,然後'i'、's'也都是英文小寫字母,需要轉換為'k'、'w',餘下類推。

所以需要利用一個迴圈(loop)進行上述編碼工作,逐一檢查字串中的每一個字元(character),若是屬於英文小寫字母的編碼範圍就是Unicode編碼97到122之間,我們先將該字元轉換為整數,然後減掉97就會是表格中對應字元索引值。

這是說,第0個字元(索引值為0)'T'不在英文小寫字母編碼的範圍,因此程式不會處理,然後到第1個字元'h',這是英文小寫字母編碼為104,減去97之後為7,對應到上面的表格會是'b',因此得到的新字串第1個新字元就是'b',餘下會一直進行重複的工作到字串結束為止。

因此,我們對編碼方法(method)設計如下 publicStringtoEncode(Strings){ char[]cs=s.toCharArray(); inti,ci,d,m; charr; Stringrs=""; Charactercc; //進行編碼轉換 for(i=0;i=97&&cs[i]<=122){ ci=cs[i]; m=ci-97; cs[i]=getArray()[m]; } } //將字元陣列儲存為字串 for(i=0;i=97&&cs[i]<=122){ ci=cs[i]; m=ci-97; cs[i]=getArray()[m]; } } 字元陣列的屬性(field)length為陣列中元素的個數,迴圈的控制變數i最大不超過cs.length,因為陣列索引從0開始,最後一個元素的索引為length-1。

留意這一行 cs[i]=getArray()[m]; getArray()回傳我們的轉換表格cArray,因此這一行等同於 cs[i]=cArray[m]; 最後我們還需要一個迴圈,用來把字元陣列逐一附加到字串內 //將字元陣列儲存為字串 for(i=0;i=97&&cs[i]<=122){m=cs[i]-97;cs[i]=getArray()[m];}cc=newCharacter(cs[i]);rs=rs.concat(cc.toString());}這樣是OK的,但若改成如下:for(i=0;i=97&&cs[i]<=122){m=cs[i]-97;cs[i]=getArray()[m];}rs=rs.concat(cs[i]);}則會出現error:Themethodconcat(String)inthetypeStringisnotapplicableforthearguments(char)但我在for迴圈中用下式去查,二者是一樣的:System.out.println(cs[i]);System.out.println(cc);請問,問題出在哪?for迴圈合併,不能再精簡了嗎?感謝指導! 2013年2月6日下午6:21 KaichingChang 提到... cs[i]的是基本資料型態的字元,cc則是字元物件,concat()的參數必須是字串物件,這裡是把字元先轉換成字元物件,然後再用toString()轉換成字串物件。

如果要精簡的話,不妨可以改成直接用字串處理:) 2013年2月6日晚上7:27 張貼留言 較新的文章 較舊的文章 首頁 訂閱: 張貼留言(Atom) 搜尋此網誌 RSS訂閱 連結到本站 [email protected] 重要說明 本站教材的設計目標是以高中生到大一程度或程式設計的完全新手為主,尤其《入門指南》系列帶領讀者開發簡單的GUI軟體,簡言之目標為學習開發軟體的流程,其作為學習程式語言的第一本書,而非最後一本書,建議您完成《入門指南》後繼續找尋其他書籍研讀程式設計的技巧及程式語言的細節,語言細節部分也可先參考本站的《快速導覽》或《速查手冊》,謝謝。

本站電子書 GooglePlayBooks 如何自學寫作V1.00 如何自學程式設計V1.00 如何自學程式設計第二部分V2.00 C的一堂課V2.00 C速查手冊V1.00 Python的一堂課V2.00 Python新手之旅V1.10 Python入門指南V4.00 Python速查手冊V2.00 C++入門指南V2.21 C++速查手冊V1.02 Java入門指南V2.11 Swift入門指南V3.00 HTML的一堂課V5.00 CSS的一堂課V1.00 EPUB的一堂課V1.00 iBooksStore 如何自學程式設計V1.00 Python的一堂課V1.00 Python新手之旅V1.10 Python入門指南V2.31 C++入門指南V2.21 C++速查手冊V1.02 Java入門指南V2.11 Swift入門指南V3.00 EPUB的一堂課V1.10 Readmoo 如何自學寫作V1.00 如何自學程式設計V1.00 C速查手冊V1.00 Python新手之旅V1.10 Python入門指南V4.00 Python速查手冊V2.00 C++入門指南V2.20 C++速查手冊V1.02 Java入門指南V2.10 Swift入門指南V3.00 樂天kobo 如何自學程式設計V1.00 如何自學程式設計第二部分V2.00 C的一堂課V2.00 C速查手冊V1.00 Python的一堂課V2.00 Python新手之旅V1.10 Python入門指南V4.00 Python速查手冊V2.00 C++入門指南V2.21 C++速查手冊V1.02 Java入門指南V2.11 HyRead Python的一堂課V1.00H Python新手之旅V1.00H Python入門指南V2.00H C++入門指南V2.00H C++速查手冊V1.00H Java入門指南V2.00H Swift入門指南V1.00H 印客邦-紙本書 如何自學程式設計(合訂本)V2.00 C++入門指南V2.30(附C的一堂課) C++速查手冊V1.20 Java入門指南V3.00 Python入門指南V4.10 Swift入門指南V3.00



請為這篇文章評分?