時間緊張,先記一筆,後續優化與完善。
言前:
在一些手機通訊錄或者一些須要排列漢字的情況下我們須要按照漢字的首寫母字去索引一些聯絡人或者漢字,讓你排列漢字或許你沒有緒頭。讓你排列a、b、c..等母字你該應頭不會那麼大了吧?最起碼自定義次序之後去挨個判斷於等的系關也可以排列(當然有的大神有其他的方法,在此我也不在述敘),最簡略的莫過於對數字的排列。我這麼說大家該應沒有見意吧?面下進入正題
測試結果截圖:
ok,大家看到日記的輸出是準確的。面下我給大家說一下實現道理並上傳一下原始碼
實現道理:
通過漢字的碼編我們拿到這個漢字對應的位元組碼,也就是我們的getbytes方法。然後算出此漢字對應的數值。然後較比判斷此漢字地點的數值考參間區。然後拿到對應的間區,並且查詢對應的首母字。
序程段片:
每日一道理
青春是用意志的血滴和拼搏的汗水釀成的瓊漿——歷久彌香;青春是用不凋的希望和不滅的嚮往編織的彩虹——絢麗輝煌;青春是用永恆的執著和頑強的韌勁築起的一道銅牆鐵壁——固若金湯。
public class testmain ;
//用於返回的值陣列
private static char alphatable =
;//男人位元組碼對應數值間區
private static int tablechar = new int[27];
//初始化標準間區對應的應相位元組碼數值
static
}//獲得應相男人對應的位元組碼數值
public static int chinesetocode(char chinese) catch (exception e)
return code; }
// public static char codetoeng(int code)
if(code > tablechar[26])
int j = i+1;
if(code > tablechar[i] && code <= tablechar[j])
//為h的情況
if(tablechar[i] == tablechar[i-1])
currentindex = i;
break;}}
} catch (exception e)
return alphatable[currentindex]; }
public static void main(string args)
system.out.println(result);
} catch (exception e)
}}
注意:其中iuv不做聲母。我做了相干處置(即復重幾個漢字)。
序程的釋注可讀性很高。自己試著讀讀吧.
原始碼中有兩個版本。乙個是我自己寫的。另外乙個版是考參的版本。都給大家了。
Oracle 漢字占用位元組數
在oracle中乙個字元特別是中文字元佔幾個位元組是與字符集有關的。比如gbk,漢字就會佔兩個位元組,英文1個 如果是utf 8,漢字一般佔3個位元組,英文還是1個。但是一般情況下,我們都認為是兩個位元組處理,因為oracle安裝時候預設我們都選擇gbk的編碼格式,但是我們在頁面做輸入字串長度的校驗...
java 位元組陣列取反
最近在測試公司軟體的乙個功能,它會讀取乙個配置檔案資訊,但是配置檔案做了個加密處理,處理的方式就是所有的位元組都取反。這個是乙個很簡單的功能,結果卻花了好一會兒 主要還是基礎太薄弱了,mark一下吧 這裡就直接貼 吧 public static void main string args throw...
根據位元組數擷取字串
擷取字串相信大家基本都用過,但是一般都是用string.length判斷字串的長度後進行擷取。這樣如果一組字串裡既有英文 數字又有中文,那麼擷取出來的字串還是會長短不一,因為每個英文或數字是佔乙個位元組而每個漢字佔兩個位元組。這時,我們可以通過位元組數來擷取,寫了個方法 擷取指定長度的字串 擷取前的...