本文目錄一覽:
- 1、在MyEclipse10中打出的文字都是繁體字,也不知道今天哪裡動到了,請問怎麼設置回去,就是變成簡體的
- 2、java 實現 簡體gb 到 繁體 再到 big5碼 的轉換
- 3、如何用java將繁體字轉為簡體字
- 4、在java中,怎麼把繁體字轉化為簡體字
- 5、java項目翻譯繁體
在MyEclipse10中打出的文字都是繁體字,也不知道今天哪裡動到了,請問怎麼設置回去,就是變成簡體的
只在MyEclopse里顯示繁體還是?
幾種在MyEclipse里設置編碼的方法:
(1)修改工作空間的編碼方式:Window–Preferences–General–Workspace–Text file encoding
(2)修改一類文件的編碼方式:Window–Preferences–General –content Types –修改default Encoding
(3)修改單個文件的編碼方式:在源碼按右鍵–General–Editors–Test Editors–Spelling–Encoding
(4)修改單個工程的編碼方式:在工程按右鍵–Preferences–Resource–Text file encoding–other
可以按照設置修改你的編碼形式,UTF-8或者恢復默認。
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;istrInfo.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;
}
}
}
}
如何用java將繁體字轉為簡體字
我不知道你是要自己實現,還是說只要有個類庫就可以了,下面是我找的一個類庫的實例代碼:
package test3;
import net.sf.chineseutils.ChineseUtils;
public class Test {
public static void main(String args[]) throws Exception{
System.out.println(ChineseUtils.simpToTrad(“把BIG5繁體字符串轉換成的GB簡體字符串。”));
}
}
輸出:
把BIG5繁體字符串轉換成的GB簡體字符串。
在java中,怎麼把繁體字轉化為簡體字
實現思路一:採用字符串的方式實現
[java] view plain copy
package com.bzu.converter;
import java.util.Scanner;
/**
* 思路一:採用字符串的方式實現
*/
public class JianFanConvert1 {
public static final String jianti = “萬與丑專業叢東絲”;
public static final String fanti = “萬與丑專業叢東絲”;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println(“請輸入你想轉換的句子”);
String words = input.next();
for (int i = 0; i words.length(); i++) {
char tempChar = words.charAt(i);
int position = jianti.indexOf(tempChar);//此方法調用時間複雜度為O(n)
char fantiChar;
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的主要方法
int size():得到Map中“鍵-值對”的數量
boolean isEmpty():Map是否是空的,也就是是否不含有任何“鍵-值對”
boolean containsKey(Object key):Map中是否含有以key為鍵的“鍵-值對”
boolean containsValue(Object value):Map中是否含有以value為值的“鍵-值對”
Object get(Object key):從Map中得到以key為鍵的值,如果Map中不含有以key為鍵的“鍵-值對”則返回null
Object put(Object key, Object value):向Map中存儲以key為鍵、value為值的“鍵-值對”
Object remove(Object key):從Map中移除以key為鍵的“鍵-值對”
void clear():清除所有“鍵-值對”
Set keySet():得到所有的鍵
Collection values():得到所有的值
Set entrySet():得到所有的“鍵-值對”,Set中的類型是Map.Entry
[java] view plain copy
package com.bzu.converter;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
/**
* 思路二:採用哈希算法實現
*/
public class JianFanConvert2 {
public static final String jianti = “萬與丑專業叢東絲”;
public static final String fanti = “萬與丑專業叢東絲”;
public static void main(String[] args) {
MapCharacter, Character map=new HashMapCharacter, Character();
for(int i=0;ijianti.length();i++){
map.put(jianti.charAt(i),fanti.charAt(i));
}
Scanner input = new Scanner(System.in);
System.out.println(“請輸入你想轉換的句子”);
String words = input.next();
/**
* 為了測試隨着問題規模的擴大用時
*/
for(int i=0;i10;i++){
words=words+words;
}
long begin=System.currentTimeMillis();
for (int i = 0; i words.length(); i++) {
char tempChar = words.charAt(i);
Character character=map.get(tempChar);
char fantiChar;
if (character == null) {
fantiChar = tempChar;
} else{
fantiChar=character;
}
System.out.print(fantiChar);
}
long end=System.currentTimeMillis();
System.out.println(“\n用時:”+(end-begin));
}
}
分析上述算法實現,時間複雜度變為o(n)
問題探討:
為什麼算法複雜度由O(n*n)變成O(n),但是實際執行時間沒有明顯的變化?
print,數據在CPU、內存中運算都非常快,一旦與外設(打印機、網絡(網卡)、顯示設備(顯卡))交換數據,速度就會慢很多
來自
junjunguoguo的專欄
java項目翻譯繁體
必須用國際化,無論哪個國家的文字都可以轉換。
struts和spring都提供了國際化支持,你查一下國際化怎麼做就行了。
很簡單的。。。說簡單點就是把頁面中需要顯示的文字,都存進屬性文件里,一個屬性指向多種文字,最後根據用戶需要,選取適合的字體就行了。。無論英文,繁體字,還是小日本的文字,都可以定義。。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/182473.html