源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

java 一个截取字符串的函数

  • 时间:2021-04-12 18:01 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:java 一个截取字符串的函数
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。 [b]一、需要分析[/b] 1、输入为一个字符串和字节数,输出为按字节截取的字符串--------------》按照字节[byte]截取操作字符串,先将String转换成byte类型 2、汉字不可以截半----------------------------------------------------------------------------------------------------------》汉字截半的话对应字节的ASC码为小于0的数值 [b]二、技术难点[/b] 1、知道汉字截半的话对应字节的ASC码为小于0的数值 2、对字符串操作应该都要面对的一个问题,字符串是否有效null, 字符串的长度0,1这种边界处理 代码实现:
package com.itheima;

/**
 * 10、 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。
 * 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
 * 
 * @author 281167413@qq.com
 */

public class Test10 {

 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
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部