㈠ java 如何設置打開文件內容的字元集
方法一:在Eclipse里設置
1、windows->Preferences...打開"首選項"對話框,左側導航樹,導航到general->Workspace,右側Text file encoding,選擇Other,改變為 utf-8(必須小寫),以後新建立工程其屬性對話框中的Text file encoding即為UTF-8。
2、windows->Preferences...打開"首選項"對話框,左側導航樹,導航到general->Content Types,右側Content Types樹,點開Text,選擇 Java Source File,在下面的Default encoding輸入框中輸入UTF-8,點Update,則設置Java文件編碼為UTF-8。然後設置jsp、js、css等類型的Default encoding,設置方式同Java Source File。
3.windows->Preferences...打開"首選項"對話框,左側導航樹,導航到MyEclipse->Files and Editors->JSP,把Encoding改為UTF-8
方法二:在代碼中設置
要是把控制台的內容輸出到文件中(輸出流)
OutputStream out = new FileOutputStream("d:\\demo.txt");
out.write("我們".getBytes());
在getBytes()里頭寫你要用的字元集,例如:out.write("我們".getBytes("UTF-8"));
要是想把文件的內容輸入到控制台中(輸入流)
InputStreamReader in = new InputStreamReader(new FileInputStream(「demo.txt」),」UTF-8」);
㈡ 在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的專欄
㈢ 手機字體變成繁體了,怎麼調回來
可以在主題裡面找到字體的單獨選項。然後點進字體選項里!進去以後就可以看到很多字體了。選擇自己楷書,就可以看到字體的預覽,點下載!下載完了就會出現。點擊應用按鈕即可。
亮度調節:看屏幕不疲勞,自由調節屏幕亮度。安卓方法:設置--顯示--亮度--滾動條調節(安卓系統可選擇護眼模式,減少藍光輻射)蘋果方法:設置--顯示與亮度--亮度調節。