1. 在java中,怎麼把繁體字轉化為簡體字
實現思路一:採用字元串的方式實現
[java]viewplain
packagecom.bzu.converter;
importjava.util.Scanner;
/**
*思路一:採用字元串的方式實現
*/
publicclassJianFanConvert1{
publicstaticfinalStringjianti="萬與丑專業叢東絲";
publicstaticfinalStringfanti="萬與丑專業叢東絲";
publicstaticvoidmain(String[]args){
Scannerinput=newScanner(System.in);
System.out.println("請輸入你想轉換的句子");
Stringwords=input.next();
for(inti=0;i<words.length();i++){
chartempChar=words.charAt(i);
intposition=jianti.indexOf(tempChar);//此方法調用時間復雜度為O(n)
charfantiChar;
if(position==-1){
fantiChar=tempChar;
}else{
fantiChar=fanti.charAt(position);
}
System.out.print(fantiChar);
}
}
}
分析上述實現,時間復雜度為O(n*n),當問題規模擴大時會非常耗時。
實現思路二:採用哈希演算法實現
1.哈希方法
哈希方法在就是在鍵和值之間建立一個確定的對應函數關系hash(),就是key向value的換算關系,使得每一個鍵與結構中的一個唯一的存儲位置相對應:值的存儲位置=hash(鍵)即Value的位置=hash(key)
例如有一組「鍵值對」:<5,」tom」>、<8,」Jane」>、<12,」Bit」>、<17,」Lily」>、<20,」sunny」>,我們按照如下哈希函數對鍵進行計算:hash(x)=x%17+3,得出如下結果:hash(5)=8、hash(8)=11、hash(12)=15、hash(17)=3、hash(20)=6。
我們把<5,」tom」>、<8,」Jane」>、<12,」Bit」>、<17,」Lily」>、<20,」sunny」>分別放到地址為8、11、15、3、6的位置上。當要檢索17對應的值的時候,只要首先計算17的哈希值為3,然後到地址為3的地方去取數據就可以找到17對應的數據是「Lily」了。
使用哈希方法,查詢的時間復雜度為O(1),能夠直接定位其位置,大大加快數據的查詢速度。
2.哈希表
將數據採用哈希演算法進行保存的數據結構就是哈希表,常見操作put、get、remove。
Java中的HashMap使用(Java內置的哈希表數據結構)
HashMap的主要方法
intsize():得到Map中「鍵-值對」的數量
booleanisEmpty():Map是否是空的,也就是是否不含有任何「鍵-值對」
booleancontainsKey(Objectkey):Map中是否含有以key為鍵的「鍵-值對」
booleancontainsValue(Objectvalue):Map中是否含有以value為值的「鍵-值對」
Objectget(Objectkey):從Map中得到以key為鍵的值,如果Map中不含有以key為鍵的「鍵-值對」則返回null
Objectput(Objectkey,Objectvalue):向Map中存儲以key為鍵、value為值的「鍵-值對」
Objectremove(Objectkey):從Map中移除以key為鍵的「鍵-值對」
voidclear():清除所有「鍵-值對」
SetkeySet():得到所有的鍵
Collectionvalues():得到所有的值
SetentrySet():得到所有的「鍵-值對」,Set中的類型是Map.Entry
[java]viewplain
packagecom.bzu.converter;
importjava.util.HashMap;
importjava.util.Map;
importjava.util.Scanner;
/**
*思路二:採用哈希演算法實現
*/
publicclassJianFanConvert2{
publicstaticfinalStringjianti="萬與丑專業叢東絲";
publicstaticfinalStringfanti="萬與丑專業叢東絲";
publicstaticvoidmain(String[]args){
Map<Character,Character>map=newHashMap<Character,Character>();
for(inti=0;i<jianti.length();i++){
map.put(jianti.charAt(i),fanti.charAt(i));
}
Scannerinput=newScanner(System.in);
System.out.println("請輸入你想轉換的句子");
Stringwords=input.next();
/**
*為了測試隨著問題規模的擴大用時
*/
for(inti=0;i<10;i++){
words=words+words;
}
longbegin=System.currentTimeMillis();
for(inti=0;i<words.length();i++){
chartempChar=words.charAt(i);
Charactercharacter=map.get(tempChar);
charfantiChar;
if(character==null){
fantiChar=tempChar;
}else{
fantiChar=character;
}
System.out.print(fantiChar);
}
longend=System.currentTimeMillis();
System.out.println(" 用時:"+(end-begin));
}
}
分析上述演算法實現,時間復雜度變為o(n)
問題探討:
為什麼演算法復雜度由O(n*n)變成O(n),但是實際執行時間沒有明顯的變化?
print,數據在CPU、內存中運算都非常快,一旦與外設(列印機、網路(網卡)、顯示設備(顯卡))交換數據,速度就會慢很多
來自
junjunguoguo的專欄
同意樓上的,繁體的這個功能有,是通過JS來實現的,你可以在網上搜下專,應該可以搜到。
英文的這屬個功能是沒有的,除非你對應於每一個中文頁面再寫一個相對應的英文。網上的一些這樣的功能(如遨遊瀏覽器就有這個功能),但翻譯十分的不準確,因為電腦始終是死的。
3. java 實現 簡體gb 到 繁體 再到 big5碼 的轉換
不會寫main 怎麼會問這個問題呢
4. java寫文件時寫入TXT的都是中文都是繁體字,怎麼換成簡體字,UTF-8,GBK,GB2312都試過了都不行
現在只能想到弄個類將所有繁體字列出來轉成簡體,有可好方法可告訴我
5. Java如何判斷中文簡體繁體
[\u4e00-\u9fa5]
這個可以判斷是不是漢字,我測試時,不能區分簡繁。內
找到下邊這些容JS的正則。(測試也區分不了簡繁。)
[\u2E80-\u9FFF]+$ 匹配所有東亞區的語言
[\u4E00-\u9FFF]+$ 匹配簡體和繁體
[\u4E00-\u9FA5]+$ 匹配簡體
希望能你有點幫助,我再找找怎麼區分簡繁。
6. java項目翻譯繁體
必須用國際化,無論哪個國家的文字都可以轉換。
struts和spring都提供了國際化支持,你查一下國際化怎麼做就行了。
很簡單的。。。說簡單點就是把頁面中需要顯示的文字,都存進屬性文件里,一個屬性指向多種文字,最後根據用戶需要,選取適合的字體就行了。。無論英文,繁體字,還是小日本的文字,都可以定義。。