一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - 使用游長編碼對字符串壓縮 Run Length編碼示例

使用游長編碼對字符串壓縮 Run Length編碼示例

2019-11-04 14:18java教程網 JAVA教程

這篇文章主要介紹了Run Length編碼的一個示例,大家參考使用吧

例:Helloooooo => He2l6o

 

復制代碼代碼如下:


/**
 * Run-Length編碼(游長編碼)
 * @author will
 *
 */
public class RunLengthEncoder {

 public static void main(String[] args) {  
  String input = "0";

  System.out.println("Original String Length: " + input.length());

  String encodedStr = encode(input);
  System.out.println("Encoded String: " + encodedStr);
  System.out.println("Encoded String Length: " + encodedStr.length());

  String decodedStr = decode(encodedStr);
  System.out.println("Decoded String: " + decodedStr);
 }

 /**
  * 用Run-Length算法編碼字符串
  * @param sourceStr 原始字符串
  * @return
  */
 public static String encode(String sourceStr) {
  if(sourceStr == null || sourceStr.length() <= 1) {
   return sourceStr;
  }

  int len = sourceStr.length();
  StringBuilder resultBuilder = new StringBuilder();
  for(int i = 0; i < len; i++) {
   char cur = sourceStr.charAt(i);
   int runLength = 1;
   while((i+1) < len && sourceStr.charAt(i+1) == cur) {
    i++;
    runLength++;
   }

   if(runLength > 1) {
    resultBuilder.append(runLength + "" + cur);
   }
   else {
    resultBuilder.append(cur);
   }
  }

  return resultBuilder.toString();
 }

 /**
  * 解碼Run-Length編碼的字符串
  * @param encodedStr
  * @return
  */
 public static String decode(String encodedStr) {
  if(encodedStr == null || encodedStr.length() <= 1) {
   return encodedStr;
  }

  int len = encodedStr.length();
  StringBuilder resultBuilder = new StringBuilder();
  for(int i = 0; i < len; i++) {
   char curChar = encodedStr.charAt(i);
   if(Character.isDigit(curChar)) {
    i++;
    char nextChar = encodedStr.charAt(i);
    int runLength = Integer.parseInt(curChar + "");
    for(int j = 0; j < runLength; j++) {
     resultBuilder.append(nextChar);
    }
   }
   else {
    resultBuilder.append(curChar);
   }
  }

  return resultBuilder.toString();
 }

 

}

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲精品欧洲久久婷婷99 | 国产探花在线视频 | 国产99久久精品 | 热99精品在线 | 男同激情视频 | 成人精品mv视频在线观看 | 亚洲成人国产精品 | 污软件在线观看 | 国内精品久久久久影院网站 | 国产高清在线不卡 | 狠狠干在线观看 | 欧美日韩国产一区二区三区在线观看 | 久久成人国产精品一区二区 | 色综合久久丁香婷婷 | 日本五十路六十30人8时间 | 国产综合社区 | 鬼吹灯之天星术免费观看 | 无人视频在线观看完整版高清 | 亚洲视频一区二区在线观看 | 五月天婷婷网亚洲综合在线 | china国产bbw | 9999视频| 国产一区二区三区四区波多野结衣 | 四虎影在线永久免费观看 | 欧美video丝袜连裤袜bd | 睡男神的这件小事小说在线阅读 | 精品卡1卡2卡三卡免费网站 | 男人狂躁女人下面的视频免费 | 欧美日韩久久中文字幕 | 亚洲一区二区日韩欧美gif | 国产福利自产拍在线观看 | 日韩小视频在线观看 | 第一次做m被调教经历 | 网www天堂资源在线 王淑兰与铁柱全文免费阅读 | 九九九九在线视频播放 | 成人精品一区二区三区中文字幕 | 精品一区二区国语对白 | 国产日韩一区二区三区在线播放 | 男男gaygays18中国 | 国产123区在线视频观看 | 精品国产自在现线拍400部 |