用字节数截取字符串

2023-11-13

昨天去参加中科软的笔试,编程题有一道是关于字符串的,用字节数来截取字符串,如果出现中文被截断了,应该丢去中文的那个字节。如:String a = "中aaa国ccc";截取6个字节的字符串,即:中aaa+"国"的前一部分。设计一个函数,把截到的中文的那部分去掉。

 

当时,不会做,自己乱写一通哈。回来后,查找资料,发现可以利用java的编码规则解决。就是,Unicode编码啦!

 

 

java代码:

 

	private static String cutStringByBytes(String s,int length) throws UnsupportedEncodingException{
		 byte[] bytes = s.getBytes("unicode");
	        int n = 0; // 当前的字节数
	        int i = 2; // 要截取的字节数,bytes数字的前面两位是标志位
	        while(n < length)
	        {
                if (bytes[i] != 0)   
                {   
                	n++;
                }
	            i++;
	        }
	        // 如果i为奇数
	        if (i % 2 == 1)
	        {
	           i = i - 1;
	        }

	        return new String(bytes, 0, i, "unicode");
	}
 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用字节数截取字符串 的相关文章

  • Java中字符串中特殊字符的替换

    Java中如何替换字符串 E g String a adf sdf 如何替换和避免特殊字符 您可以删除除此之外的所有字符可打印的 ASCII 范围 http en wikipedia org wiki ASCII ASCII printab
  • Java:迭代 Collection 的最佳方法(此处为 ArrayList)

    今天 当我看到一段我已经使用了数百次的代码时 我很高兴地开始编码 迭代集合 此处为 ArrayList 出于某种原因 我实际上查看了 Eclipse 的自动完成选项 这让我想知道 在什么情况下以下循环比其他循环更好使用 经典的数组索引循环
  • org.apache.sling.api.resource,version=[2.3,3) -- 无法解析

    您好 我无法访问我的项目内容 我已经上传了从 CQ 访问内容所需的所有包 我唯一能看到的是 org apache sling api resource version 2 3 3 无法解析 这是否是异常的原因 如果是 请告诉我如何解决 中Q
  • 正则表达式拆分数字和字母组,不带空格

    如果我有一个像 11E12C108N 这样的字符串 它是字母组和数字组的串联 如何在中间没有分隔符空格字符的情况下分割它们 例如 我希望分割结果为 tokens 0 11 tokens 1 E tokens 2 12 tokens 3 C
  • Android在排序列表时忽略大小写

    我有一个名为路径的列表 我目前正在使用以下代码对字符串进行排序 java util Collections sort path 这工作正常 它对我的 列表进行排序 但是它以不同的方式处理第一个字母的情况 即它用大写字母对列表进行排序 然后用
  • OSGi:如果不取消服务会发生什么

    这是我获取 OSGi 服务的方式 ServiceReference reference bundleContext getServiceReference Foo class getName Foo foo Foo bundleContex
  • wait() 在游戏中如何工作?

    在 playframework 的文档中here http www playframework org documentation 1 2 1 asynchronous已写 public static void loopWithoutBlo
  • 按第一列排序二维数组,然后按第二列排序

    int arrs 1 100 11 22 1 11 2 12 Arrays sort arrs a b gt a 0 b 0 上面的数组已排序为 1 100 1 11 2 12 11 22 我希望它们按以下方式排序a 0 b 0 首先 如果
  • Cassandra java驱动程序协议版本和连接限制不匹配

    我使用的java驱动程序版本 2 1 4卡桑德拉版本 dsc cassandra 2 1 10cql 的输出给出以下内容 cqlsh 5 0 1 Cassandra 2 1 10 CQL spec 3 2 1 Native protocol
  • 如何模拟从抽象类继承的受保护子类方法?

    如何使用 Mockito 或 PowerMock 模拟由子类实现但从抽象超类继承的受保护方法 换句话说 我想在模拟 doSomethingElse 的同时测试 doSomething 方法 抽象超类 public abstract clas
  • 画透明圆,外面填充

    我有一个地图视图 我想在其上画一个圆圈以聚焦于给定区域 但我希望圆圈倒转 也就是说 圆的内部不是被填充 而是透明的 其他所有部分都被填充 请参阅这张图片了解我的意思 http i imgur com zxIMZ png 上半部分显示了我可以
  • 匿名类上的 NotSerializedException

    我有一个用于过滤项目的界面 public interface KeyValFilter extends Serializable public static final long serialVersionUID 7069537470113
  • Java 8 流 - 合并共享相同 ID 的对象集合

    我有一系列发票 class Invoice int month BigDecimal amount 我想合并这些发票 这样我每个月都会收到一张发票 金额是本月发票金额的总和 例如 invoice 1 month 1 amount 1000
  • 将 SignedHash 插入 PDF 中以进行外部签名过程 -workingSample

    遵循电子书第 4 3 3 节 PDF 文档的数字签名 https jira nuxeo com secure attachment 49931 digitalsignatures20130304 pdf 我正在尝试创建一个工作示例 其中 客
  • 以编程方式在java的resources/source文件夹中创建文件?

    我有两个资源文件夹 src 这是我的 java 文件 资源 这是我的资源文件 图像 properties 组织在文件夹 包 中 有没有办法以编程方式在该资源文件夹中添加另一个 properties 文件 我尝试过这样的事情 public s
  • 如何在selenium服务器上提供自定义功能?

    我知道可以通过某种方法获得一些硒功能 其中之一如下 driver getCapabilities getBrowserName 它返回浏览器名称的值 但如果它指的是一个可用的方法 如果我没有误解的话 这似乎与自定义功能有关 就像我的意思是
  • 如何知道抛出了哪个异常

    我正在对我们的代码库进行审查 有很多这样的陈述 try doSomething catch Exception e 但我想要一种方法来知道 doSomething 抛出了哪个异常 在 doSomething 的实现中没有 throw 语句
  • 测试弱引用

    在 Java 中测试弱引用的正确方法是什么 我最初的想法是执行以下操作 public class WeakReferenceTest public class Target private String value public Targe
  • Java中的Object类是什么?

    什么是或什么类型private Object obj Object http download oracle com javase 6 docs api java lang Object html是Java继承层次结构中每个类的最终祖先 从
  • javafx android 中的文本字段和组合框问题

    我在简单的 javafx android 应用程序中遇到问题 问题是我使用 gradle javafxmobile plugin 在 netbeans ide 中构建了非常简单的应用程序 其中包含一些文本字段和组合框 我在 android

随机推荐

  • Qt界面之间信息传递(自身项目经验,一文必懂)

    Qt最常用的就是信号与槽这一结构 对于这一结构 我们可以看下Qt4和Qt5以上版本的差别 connect ui gt QCP fabric edit SIGNAL mousePress QMouseEvent this SLOT myMou
  • NVIDIA驱动安装及报错处理

    NVIDIA驱动安装及报错处理 下载GPU驱动包 安装GPU驱动包 卸载GPU驱动包 GPU驱动包安装排错 下载GPU驱动包 驱动下载 https www nvidia com Download Find aspx 复制好地址后 使用wge
  • order函数的简单使用

    a lt c 5 4 3 2 1 b lt c 1 2 3 4 5 c lt cbind a b c order c 1 按第一列递增排序 转载https blog csdn net illfm article details 152183
  • Hinton开源CapsuleNet

    当前的深度学习理论是由Geoffrey Hinton大神在2007年确立起来的 但是如今他却认为 CNN的特征提取层与次抽样层交叉存取 将相同类型的相邻特征检测器的输出汇集到一起 是大有问题的 去年9月 在多伦多接受媒体采访时 Hinton
  • Restful定义,接口设计原则及优点

    1 什么是REST REST全称是Representational State Transfer 中文意思是表述 编者注 通常译为表征 性状态转移 它首次出现在2000年Roy Fielding的博士论文中 Roy Fielding是HTT
  • JVM各垃圾回收器优缺点及应用场景

    目录 为什么需要使用垃圾收集器 JVM各垃圾收集器特点 1 Serial收集器 2 ParNew收集器 3 Parallel Scavenge收集器 4 Serial Old收集器 5 Parallel Old收集器 6 Serial Se
  • 华为OD机试真题- 红黑图

    题目描述 众所周知红黑树是一种平衡树 它最突出的特性就是不能有两个相邻的红色节点 那我们定义一个红黑图 也就是一张无向图中 每个节点可能有红黑两种颜色 但我们必须保证没有两个相邻的红色节点 现在给出一张未染色的图 只能染红黑两色 问总共有多
  • js实现字符串排序

    规则 规则 1 英文字母从 A 到 Z 排列 不区分大小写 如 输入 Type 输出 epTy 规则 2 同一个英文字母的大小写同时存在时 按照输入顺序排列 如 输入 BabA 输出 aABb 规则 3 非英文字母的其它字符保持原来的位置
  • 29.Kubernetes(十一)-----监控(helm可视化 web图形)

    helm可视化 web图形 一 镜像 1 下载镜像 2 上传镜像到仓库 二 编写配置文件 三 安装部署 1 真机解析 2 添加用户 赋予管理权限 3 真机访问 4 访问成功 5 Token登陆 四 图形操作 1 添加仓库 编写仓库解析 添加
  • 嵌入式单片机及其相关博客及教程

    一 单片机 1 嵌入式单片机程序架构之时间片轮询法 https mp weixin qq com s F6FGDwW Rqaxzf9BYcg6yQ 2 stm32 f429 移植 littlevGL https mp weixin qq c
  • 芯片设计中的latch_闩锁效应(Latch-up)详解

    在CMOS集成电路中 闩锁效应不容忽视 这篇文章将从0开始给大家介绍闩锁效应 Latch up 以及有效抑制闩锁效应的方法 一 背景知识 1 双极结型晶体管 Bipolar Junction Transistor BJT 图1 NPN型BJ
  • 四、数据库与身份认证

    目录 安装与配置MySQL MySQL的基本使用 使用 MySQL Workbench 管理数据库 1 连接数据库 2 了解主界面的组成部分 3 创建数据库 4 创建数据表 5 向表中写入数据 SQL 的 SELECT 语句 1 语法 2
  • 视频的容器与格式

    转发自 http blog csdn net tttyd article details 6893392 1 视频容器格式简介 一般而言 视频文件的扩展名就是视频的容器名 比如 avi文件 或者 mp4文件 avi和mp4只是容器格式 好比
  • 五大开源Web服务器

    开源产品的出现不仅获得了个人用户的喜爱 众多知名企业也青睐于它 虽然开源产品数不胜数 但并不是每一个开源产品都能被广泛应用并得到大众的好评 在众多成功的开源产品中 只有少数领头羊 而其它产品只能望其项背 本文汇总了五款开源Web服务器 来看
  • STM32F103 实验 输入捕获

    目录 本文 在上一章的基础上 将介绍如下内容 输入捕获 上一篇 STM32F103 实验 PWM输出 https blog csdn net qq 40318498 article details 96475438 参考 STM32F103
  • 测试——自动化测试(Selenium工具)

    目录 一 自动化测试的概念以及分类 二 Selenium web自动化测试工具 1 自动化测试的一些前置工作 2 第一个自动化实例 3 总结 编辑 三 Selenium常用方法 定位元素的方法 元素的操作 等待 强制等待 待补充 隐式等待
  • C++学习——函数调用运算符、function类模板

    一 函数调用运算符 1 圆括号 就是函数调用的明显标记 有一个称呼叫做 函数调用运算符 2 如果我在类中重载了函数调用运算符 那么我们就可以像使用函数一样使用该类的对象了 对象 实参 class BiggerThanZero public
  • C++初探 5-1(for循环)

    目录 注 for循环 for循环的组成部分 1 表达式和语句 2 非表达式和语句 3 修改规则 for循环的使用例 阶乘的计算与存储 修改循环更新的步长 使用for循环访问字符串 递增运算符 和 递减运算符 副作用和顺序点 前缀格式和后缀格
  • NoSQL简介和兴起的原因

    NoSQL简介和兴起的原因 NoSQL数据库具有以下几个特点 1 灵活的可扩展性 2 灵活的数据模型 3 与云计算紧密融合 怎么理解横向扩展和纵向扩展 纵向扩展 传统思想 把电脑的CPU配到顶配 内存扩展 硬盘扩大 就可以让单机更高效率地处
  • 用字节数截取字符串

    昨天去参加中科软的笔试 编程题有一道是关于字符串的 用字节数来截取字符串 如果出现中文被截断了 应该丢去中文的那个字节 如 String a 中aaa国ccc 截取6个字节的字符串 即 中aaa 国 的前一部分 设计一个函数 把截到的中文的