當前位置:首頁 » 文件管理 » java字元壓縮

java字元壓縮

發布時間: 2023-09-29 18:08:19

① 輸入一串小寫字母(a-z)組成的字元串,將連續字母壓縮輸出字元串,用java實現

Scanner scanner = new Scanner(System.in);

String str = scanner.nextLine();/咐並/dasdascasd
char[] chars = str.toCharArray();
char c = 0;
int j = 1;
for (int i = 0; i < chars.length; i++) {
char b = chars[i];
if (c!=b) {
if (j!=1) {
System.out.print(j);
}
System.out.print(c);
j = 1;/銀鏈/初始化鋒簡孫j
}else{
j = j + 1;
}
c = b;
}
System.out.println(chars[chars.length-1]);
}

② Java,把字元竄壓縮成十六進制,並且壓縮一半

12345678910111213141516171819小豬,已解答,採納即可publicclassRectangle{publicstaticvoidmain(String[]args){StringS1="0412134FFFFFFFFFF";StringT1="00007770000200";longsi=Long.parseLong(S1,16);longti=Long.parseLong(T1);longst=si^//很顯然是十進制0~9//4693090553043039415System.out.println(st);Stringhex=Long.toHexString(st);//412134fe30df34b7System.out.println(hex);}}

追問

按照異或的演算法,首位0和0異或的結果不是應該是0嗎?為什麼算出來後結果的第一位是4?還是說內部執行的機制不是這樣的?求教,謝謝

③ Java編寫方法實現字元串壓縮的功能,連續的 n 個字元 x 表示為 xn,例如 aaaa 表示為a4,

packagedemo1;

publicclassDemo2{
publicstaticStringreceString(finalStringstr){
StringBufferresult=newStringBuffer();
finalintcount=str.length();
charc1=str.charAt(0);
intsum=歲沒1;
for(inti=1;i<count;i++){
charc2=str.charAt(i);
if(c1逗雀慧==c2)
{
sum++;
continue;
}
result.append(c1).append(sum);
c1=c2;
sum=1;
}
result.append(sum).append(c1);
returnresult.toString();
}山答
publicstaticvoidmain(String[]args){
System.out.println(receString("aaaaaaaabbbccdddeeebbba"));
}
}

④ java如何將很長的字元串存儲為壓縮文件

String str = ""; int length = str.length(); List<Integer> index = new ArrayList<Integer>(); for (int i = 0; i < length - 1; i++) { if(str.charAt(i) != str.charAt(i + 1)){ index.add(i); } } if(str.charAt(length - 2) != str.charAt(length - 1)){ index.add(length - 1); } int start = 0; StringBuffer result = new StringBuffer(); for (int i = 0; i < index.size(); i++) { int end = index.get(i) + 1; if(i != 0){ start = index.get(i - 1) + 1; } String temp = str.substring(start, end); result.append(temp.charAt(0)).append(end - start); } System.out.println(result.toString());最終結果是:a6s4c5d7w1s1a3s1d1c1a1s1

⑤ java,如何將字元串"12345678901212345678"壓縮一下,使輸出結果變短,並能反向解析

1. 可以考慮引入字元A~Z,加上0~9,形成36進制(更進一步可以大小寫敏感,加上a~z,形成62進制);
2. 將上述字元串緩春敗 除以36 取余;作為個位數;上述字元串 除以36 取整,作為結果,重復本步取余計算。
3. 獲得結果。

4. 反向解析,將擾顫上述結果,分別按位數 乘以 36 ;
5. 最後合並相加,獲得原森侍字元串。

⑥ java 實現對字元串進行GSM(7bit)壓縮編碼後HEX 字元串輸出

JAVA有一個public String(byte bytes[], Charset charset)函數可以用指定位元組數組和編碼來構造字元串。一個public byte[] getBytes(Charset charset)函數把字元串按指嘩枯襪定編碼來得到位元組數組。可以用這兩個函數來實現編碼轉換。
下面是一個簡單的例子,注意一下例子中的文字本身的編碼,最好在自己的環境中用gb2312重新輸入,不然可能是亂碼敗雀。當然轉換後輸出肯定有一個是亂碼,也肯能都是亂碼。根據你的編輯器的編碼格式有關。
public class EncodingTest{ public static void main(String[] args) { try { String gb = new String("亂激國標2312".getBytes(),"gb2312"); System.out.println(gb); byte [] b = gb.getBytes("gb2312"); String ios = new String(b,"ISO-8859-1"); System.out.println(ios); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } }}

⑦ java字元串經過bcd壓縮後怎麼傳輸

解決方法:

據我所知,您目前的做法是:

>使用getBytes(「UTF-8」)將String轉換為位元組數組.

>壓縮位元組數組

>使用新的String(位元組,…,「UTF-8」)將壓縮位元組數組轉換為String.

>傳輸壓縮字元串

>接收壓縮字元串

>使用getBytes(「UTF-8」)將壓縮字元串轉換為位元組數組.

>解壓縮位元組數組

>使用新的String(bytes,…,「UTF-8」)將解壓縮的位元組數組轉換為String.

這種方法的問題在於步驟3.壓縮位元組數組時,您創建的位元組序列可能不再是沒汪有效的UTF-8.結果將是步驟3中的例外.

解決方案是使用像Base64這樣的「位元組到字元」編碼方案將壓縮位元組轉換為可傳輸的字元串.換句話說,用調用Base64編碼函數代替步驟3,用調用Base64解碼函數代替步驟6.

筆記:

>對於小弦,壓縮和

編碼很可能實際上

增加傳輸字元串的大小.

>如果要將壓縮的字元串合並到URL中,您可能希望為Base64選擇不同的編碼,以避免兆察緩需要進行URL轉義的字元.

>根據您傳輸的數據的性質,您可能會發現特定於域的壓縮比通用壓縮更好.考慮在創建以逗號分隔的字元串之前壓縮數據.考慮以逗號分隔的字元串的族模替代方法.

⑧ Java 字元串壓縮與解壓

給你提供個思想
首先你這不是物理上的壓縮,也就是說它是一個邏輯上的我們認同上的壓縮。
你需要寫一個演算法來對你所要處理的數據進行統計,然後按照演算法來改變結果。
最後達到一個後台的虛擬壓縮(實際上不是壓縮,只是演算法)。

熱點內容
什麼是手機存儲模式 發布:2025-01-23 22:41:57 瀏覽:534
c語言相反數 發布:2025-01-23 22:28:55 瀏覽:187
壓縮網課 發布:2025-01-23 22:13:19 瀏覽:597
網站收錄源碼 發布:2025-01-23 22:04:42 瀏覽:693
用c語言製作 發布:2025-01-23 21:49:09 瀏覽:951
怎麼刪除開機密碼電腦 發布:2025-01-23 21:47:24 瀏覽:891
php配置偽靜態 發布:2025-01-23 21:31:46 瀏覽:764
mud源碼下載 發布:2025-01-23 21:19:46 瀏覽:137
反恐精英15游戲伺服器ip 發布:2025-01-23 21:13:38 瀏覽:853
起床的戰爭玩什麼伺服器 發布:2025-01-23 21:03:06 瀏覽:145