A. 在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的專欄
B. java 中文繁體轉中文簡體軟體怎麼用
你輸入想要轉換的中文,按轉換就會轉換成繁體字了。
C. java如何做到繁體中文轉換
說的不具體,如果是在JSP網頁上,可以使用資源文件,properties擴展名
D. JAVA中如何將GBK繁體字轉化成簡體字
有getCharacterEncoding() 方法,返回值是String的,你可以根據String處理來判斷是哪種字元集;以下是api的解釋
Returns the name of the character encoding used in the body of this request.
當然有點偏題了,關於「JAVA中如何將GBK繁體字轉化成簡體字」的問題你可以看以下鏈接:http://hi..com/chenhaoxian/blog/item/cbada8c3e3432c54b219a86b.html
這是方法之一,你完全可以放到伺服器端做,並且做的更細一些,只是那樣會加重伺服器負擔,一般的都可以在瀏覽器處理……
E. java有什麼好用的中文簡體轉繁體的插件
目前網上還沒有插件的漢化包。
F. 如何用java將繁體字轉為簡體字
我不知道你是要自己實現,還是說只要有個類庫就可以了,下面是我找的一個類庫的實例代碼:
packagetest3;
importnet.sf.chineseutils.ChineseUtils;
publicclassTest{
publicstaticvoidmain(Stringargs[])throwsException{
System.out.println(ChineseUtils.simpToTrad("把BIG5繁體字元串轉換成的GB簡體字元串。"));
}
}
輸出:
把BIG5繁體字元串轉換成的GB簡體字元串。
G. java 實現 簡體gb 到 繁體 再到 big5碼 的轉換
public class CharDecode {
public static void main(String[] args) throws Exception{
// TODO: Add your code here
System.setProperty("file.encoding","big5");//系統默認字元改成big5
System.out.println("please enter a chinese String:");
byte [] buf = new byte[1024];
String strInfo = null;
int pos = 0;
int ch = 0;
while(true)
{
ch = System.in.read();
System.out.println(Integer.toHexString(ch));
switch(ch)
{
case '\r':
break;
case '\n':
strInfo = new String(buf,0,pos);//使用默認字元集
for(int i=0;i<strInfo.length();i++)
{
System.out.println(Integer.toHexString(/*(int)*/strInfo.charAt(i)));
}
System.out.println(new String(strInfo.getBytes("big5"),"gb2312"));//big5轉換成gb2312
break;
default:
buf[pos++] = (byte)ch;
}
}
}
}
H. Java如何判斷漢字是簡體還是繁體
[\u4e00-\u9fa5]
這個可以判斷是不是漢字,我測試時,不能區分簡繁。
找到下邊這些JS的正則。(測試也區分不了簡繁。)
[\u2E80-\u9FFF]+$
匹配所有東亞區的語言
[\u4E00-\u9FFF]+$
匹配簡體和繁體
[\u4E00-\u9FA5]+$
匹配簡體
希望能你有點幫助,我再找找怎麼區分簡繁。
I. java web 中簡繁轉換,卻轉換成了標點符號,急!!!
問題可能出在String text = req.getParameter("text");
因為傳入servlet的字元編碼的問題。
試試:
String text = new String(java.net.URLDecoder.decode(req.getParameter("text"),"GBK"));
如果不行,再到網上找找這個字元轉化的有關材料。
J. 如何將一個簡體中文的網站轉變成繁體的網站呢
對網頁進行簡繁字體轉換的方法一般有兩種:一是使用專業軟體,另外一種是製作兩套版本的網頁。顯然,這兩種方法都較為麻煩,這里提供一個非常簡單的方法,只須在頁面上添加幾行代碼就可以輕松搞定網頁的簡繁轉換了。
首先在下載用於簡繁轉換的js文件transform.js,下載地址自行網路。
復制到網站目錄下,然後使用網頁製作工具打開需要進行簡繁轉換的網頁,在代碼中的加入如下代碼:
<script type="text/javascript" language="javascript" src="transform.js"></script>
<script type="text/javascript" language="javascript">
function s2t()
{document.body.innerHTML = document.body.innerHTML.s2t();}
function t2s()
{document.body.innerHTML = document.body.innerHTML.t2s();}
</script>
然後在網頁的適當位置添加簡繁轉換鏈接:
<a href="javascript:s2t()">繁體中文</a> <a href="javascript:t2s()">簡體中文</a>
保存頁面後,點擊「繁體中文」鏈接,頁面就會成繁體,點擊「簡體中文」就會自動轉換為簡體形式,方便不同用戶的選擇瀏覽了。
提示:這種方法不僅適用於靜態網站還可以用在論壇、留言板等動態網站系統中。