C语言编写一个截取字符串函数,编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,...

一、需要分析

1、输入为一个字符串和字节数,输出为按字节截取的字符串---》按照字节[byte]截取操作字符串,先将String转换成byte类型

2、汉字不可以截半---》汉字截半的话对应字节的ASC码为小于0的数值

二、技术难点

1、知道汉字截半的话对应字节的ASC码为小于0的数值

2、对字符串操作应该都要面对的一个问题,字符串是否有效null, 字符串的长度0,1这种边界处理

/**

* 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。

* 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。

* */

public class Test {

public static void main(String[] args) {

String srcStr1 = "我ABC";

String srcStr2 = "我ABC汉DEF";

splitString(srcStr1, 4);

splitString(srcStr2, 6);

}

public static void splitString(String src, int len) {

int byteNum = 0;

if (null == src) {

System.out.println("The source String is null!");

return;

}

byteNum = src.length();

byte bt[] = src.getBytes(); // 将String转换成byte字节数组

if (len > byteNum) {

len = byteNum;

}

// 判断是否出现了截半,截半的话字节对于的ASC码是小于0的值

if (bt[len] < 0) {

String subStrx = new String(bt, 0, --len);

System.out.println("subStrx==" + subStrx);

} else {

String subStrx = new String(bt, 0, len);

System.out.println("subStrx==" + subStrx);

}

}

}

处理结果:

subStrx==我AB

subStrx==我ABC

C中字符串分割函数strtok的一个坑

strtok的典型用法是: p = strtok(s4, split); while(p != NULL){ printf("%s\n", p); p = strtok(NULL, ...

&lpar;C&sol;C&plus;&plus;学习&rpar;13&period;C语言字符串处理函数&lpar;一&rpar;

说明:字符串处理的函数很多,本文将例举经常遇到的一些函数加以说明. 一.字符串的输入输出 头文件: 1.利用标准输出函数 printf() 来输出,将格式设置为 s% . ...

C&plus;&plus;语言字符串处理函数

C++语言提供了比C语言更丰富的字符串处理功能.它可以在字符串上经行输入,输出,合并,修改,比较,转换,复制,搜索等操作.使用这些现成的功能可以大大减少我们的编程的负担. 输入和输出的字符串函数,如p ...

oracle获取字符串长度函数length&lpar;&rpar;和hengthb&lpar;&rpar;

原文:oracle获取字符串长度函数length()和hengthb() lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 length(string)计算s ...

获取字符串长度函数length&lpar;&rpar;和hengthb&lpar;&rpar;

oracle获取字符串长度函数length()和hengthb() lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 length(string)计算stri ...

oracle获取字符串长度函数length&lpar;&rpar;和lengthb&lpar;&rpar;

oracle获取字符串长度函数length()和lengthb()   lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 length(string)计算st ...

面试题之java 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 要求不能出现截半的情况

题目:10. 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串. 但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输 ...

随机推荐

&lbrack;LeetCode&rsqb; Smallest Rectangle Enclosing Black Pixels 包含黑像素的最小矩阵

An image is represented by a binary matrix with 0 as a white pixel and 1 as a black pixel. The black ...

UIButton快速点击,只执行最后一次

button快速点击时,会导致,同一动作执行多次,常用解决办法: 第一种方法:推荐 //取消执行 [[self class] cancelPreviousPerformRequestsWithTarg ...

fname

from lxml import etreeimport requestsdef getHtml(html): novelcontent = requests.get(html).content re ...

MVC ViewBag和ViewData的区别

在MVC3开始,视图数据可以通过ViewBag属性访问,在MVC2中则是使用ViewData.MVC3中保留了ViewData的使用.ViewBag 是动态类型(dynamic),ViewData 是 ...

android 按钮宽度按比例

test1 test2 ...

Storyboard中使用UIscrollView添加约束的开发总结

第一次在项目中用storyboard做界面,一般的界面直接添加约束非常爽快 然后有个界面有scrollview,添加了约束还总是出错 刚开始使用了 wCompact,hRegular,滑动出现问题,有 ...

jqGrid数据表格

方式一:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值