字符串 压缩 java_简单的java字符串压缩(原创)

字符串 压缩 java_简单的java字符串压缩(原创)复制内容到剪贴板代码 packageorg test 面试题目 现有一个字符串 其内容仅仅包含 a z 现在要进行网络传输 故需要减少网络传输的 大小 如何将字符串空间缩小 以下为我给出的答案 可能不对 欢迎探讨 求最优方式 publicclassC publicstatic acdesfghsada

复制内容到剪贴板

代码:package org.test;/

* 面试题目:现有一个字符串,其内容仅仅包含a—z,现在要进行网络传输,故需要减少网络传输的

* 大小,如何将字符串空间缩小。以下为我给出的答案,可能不对,欢迎探讨。(求最优方式)

*/

public class Contraction {

public static String tempString = “acdesfghsadajfkqsfab”;

/

* 利用字节码的空间去进行压缩

* @param args

*/

public static void main(String[] args) {

System.out.println(“压缩前字符串内容:”+tempString);

System.out.println(“压缩前字符串大小:”+tempString.length());

String resultString = compactString(tempString);

System.out.println(“压缩后字符串内容:”+resultString);

System.out.println(“压缩后字符串大小:”+resultString.length());

String convertString = decompressionString(resultString);

System.out.println(“解压后字符串内容:”+convertString);

System.out.println(“解压后字符串大小:”+convertString.length());

}

/

* 通过接口compactString()的压缩方式进行解压

* @param tempString

* @return

*/

public static String decompressionString(String tempString){

char[] tempBytes = tempString.toCharArray();

StringBuffer sb = new StringBuffer();

for (int i = 0; i < tempBytes.length; i++) {

char c = tempBytes;

char firstCharacter = (char) (c >>> 8);

char secondCharacter = (char) ((byte)c);

sb.append(firstCharacter);

if(secondCharacter != 0)

sb.append(secondCharacter);

}

return sb.toString();

}

/

* 对需要进行压缩的字符串进行压缩,返回一个相对较小的字符串

* @param tempString

* @return

*/

public static String compactString(String tempString) {

StringBuffer sb = new StringBuffer();

byte[] tempBytes = tempString.getBytes();

for (int i = 0; i < tempBytes.length; i+=2) {

char firstCharacter = (char)tempBytes;

char secondCharacter = 0;

if(i+1

secondCharacter = (char)tempBytes[i+1];

firstCharacter <<= 8;

sb.append((char)(firstCharacter+secondCharacter));

}

return sb.toString();

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/215143.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午2:36
下一篇 2026年3月18日 下午2:36


相关推荐

  • 终于理解了什么是LGPL

    终于理解了什么是LGPL转载来源 点击打开链接 GPL 我们很熟悉的 Linux 就是采用了 GPL GPL 协议和 BSD ApacheLicenc 等鼓励代码重用的许可很不一样 GPL 的出发点是代码的开源 免费使用和引用 修改 衍生代码的开源 免费使用 但不允许修改后和衍生的代码做为闭源的商业软件发布和销售 这也就是为什么我们能用免费的各种 linux 包括商业公司的 linux 和 linux 上各种各样的由个人 组织 以及商业

    2026年3月17日
    2
  • PLSQL的使用「建议收藏」

    PLSQL的使用「建议收藏」PLSQL这个工具专门为oracle开发的(它只能连接oracle数据库)很多工具都可以连接oracle数据库(常用的有navicat、toad、plsql等)1.1 初次登录PLSQL

    2022年7月3日
    42
  • 智谱大跌和大模型商业化竞速

    智谱大跌和大模型商业化竞速

    2026年3月12日
    2
  • 什么是CTI?呼叫中心系统CTI技术的应用

    什么是CTI?呼叫中心系统CTI技术的应用CTI 是指计算机电话集成 CTI 呼叫中心系统是指一种基于 CTI 技术 充分利用通信网和计算机网的多项功能集成 并与企业连为一体的一个完整的综合信息服务系统 下面我们就来详细了解 CTI 是什么 什么是 CTI 呼叫中心系统 CTI 是英文 ComputerTele 的简写形式 翻译为 计算机电话集成 也称为计算机化的呼叫中心 是呼叫中心 callcenter 系统的核心技术 因此 CTI 通常指 CTI 技术 CTI

    2026年3月26日
    2
  • 【Windows网络编程】完成端口IOCP介绍(超详细)

    【Windows网络编程】完成端口IOCP介绍(超详细)这篇文档我非常详细并且图文并茂的介绍了关于网络编程模型中完成端口的方方面面的信息,从API的用法到使用的步骤,从完成端口的实现机理到实际使用的注意事项,都有所涉及,并且为了让朋友们更直观的体会完成端口的用法,本文附带了有详尽注释的使用MFC编写的图形界面的示例代码。       我的初衷是希望写一份互联网上能找到的最详尽的关于完成端口的教学文档,而且让对Socket编程略有了解的人都能够

    2022年4月18日
    357
  • 如何获取窗口句柄「建议收藏」

    如何获取窗口句柄「建议收藏」1、使用FindWindow函数获取窗口句柄2、获取所有顶层窗口以及它们的子窗口使用EnumWindows和EnumChildWindows函数以及相对的回调函数EnumWindowsProc和EnumChildWindowsProc获取所有顶层窗口以及它们的子窗口3、使用GetDesktopWindow和GetNextWindow函数得到所有的子窗口…

    2022年7月21日
    18

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号