最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2014年01月27日 09:11:24   作者:  
這篇文章主要介紹了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();
 }

}

相關(guān)文章

  • 關(guān)于BeanUtils.copyProperties(source, target)的使用

    關(guān)于BeanUtils.copyProperties(source, target)的使用

    這篇文章主要介紹了關(guān)于BeanUtils.copyProperties(source, target)的使用說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 解決springboot 實體類String轉(zhuǎn)Date類型的坑

    解決springboot 實體類String轉(zhuǎn)Date類型的坑

    這篇文章主要介紹了解決springboot 實體類String轉(zhuǎn)Date類型的坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • SpringBoot配置多數(shù)據(jù)源的四種方式分享

    SpringBoot配置多數(shù)據(jù)源的四種方式分享

    在日常開發(fā)中我們都是以單個數(shù)據(jù)庫進行開發(fā),在小型項目中是完全能夠滿足需求的,但是,當我們牽扯到大型項目的時候,單個數(shù)據(jù)庫就難以承受用戶的CRUD操作,那么此時,我們就需要使用多個數(shù)據(jù)源進行讀寫分離的操作,本文就給大家介紹SpringBoot配置多數(shù)據(jù)源的方式
    2023-07-07
  • Java如何使用while循環(huán)計算一個整數(shù)的位數(shù)

    Java如何使用while循環(huán)計算一個整數(shù)的位數(shù)

    這篇文章主要介紹了Java使用while循環(huán)計算一個整數(shù)的位數(shù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Netty事件循環(huán)主邏輯NioEventLoop的run方法分析

    Netty事件循環(huán)主邏輯NioEventLoop的run方法分析

    這篇文章主要介紹了Netty事件循環(huán)主邏輯NioEventLoop的run方法分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • Spring的同一個服務會加載多次的問題分析及解決方法

    Spring的同一個服務會加載多次的問題分析及解決方法

    這篇文章主要介紹了Spring的同一個服務為什么會加載多次,我們先來梳理一下?Web?容器中如何加載?Bean,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • IDEA錯誤:找不到或無法加載主類的完美解決方法

    IDEA錯誤:找不到或無法加載主類的完美解決方法

    使用IDEA開始就一直在搭建java環(huán)境,許久沒有使用過java,剛開始有些生疏,先建了一個最簡單的類可是運行的時候出現(xiàn)錯誤:找不到或無法加載主類,下面這篇文章主要給大家介紹了關(guān)于IDEA錯誤:找不到或無法加載主類的完美解決方法,需要的朋友可以參考下
    2022-07-07
  • Spring Cloud OpenFeign REST服務客戶端原理及用法解析

    Spring Cloud OpenFeign REST服務客戶端原理及用法解析

    這篇文章主要介紹了Spring Cloud OpenFeign REST服務客戶端原理及用法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • Java Resource路徑整理總結(jié)

    Java Resource路徑整理總結(jié)

    這篇文章主要介紹了 Java Resource路徑整理總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Java中關(guān)于文件路徑讀取問題的分析

    Java中關(guān)于文件路徑讀取問題的分析

    今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識,文章圍繞著Java中關(guān)于文件路徑讀取問題展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06

最新評論

察雅县| 新田县| 隆德县| 康保县| 桂东县| 吴堡县| 柘城县| 咸丰县| 平阳县| 洪雅县| 视频| 琼海市| 河曲县| 沙洋县| 江北区| 四子王旗| 无棣县| 贵州省| 安吉县| 临漳县| 玛曲县| 安新县| 灌云县| 常德市| 丰原市| 工布江达县| 台前县| 永和县| 郎溪县| 江孜县| 中江县| 济南市| 延吉市| 灵丘县| 勐海县| 武宁县| 尼玛县| 射阳县| 靖宇县| 鱼台县| 永靖县|