首页 > 试题广场 > 实现一个按字节来截取字符串的子串的方法,功能类似于String类的subs...
[问答题]
实现一个按字节来截取字符串的子串的方法,功能类似于String类的substring()方法, String类是按字符截取的,例如”中国abc", substring(1,3), 将返回"国a"。这里要求按字节截取,一个英文字符当一个字节,一个中文字符当两个字节。

2个回答

添加回答
//以下仅供参考
  public void substring(String str, int toCount){
        int reInt = 0;
        String reStr = "";
        char[] tempChar = str.toCharArray();
        for (int kk = 0; (kk < tempChar.length && toCount > reInt); kk++){        
            String s1 = str.valueOf(tempChar[kk]);
            byte[] b = s1.getBytes();
            reInt += b.length;    //汉字的length为2
            reStr += tempChar[kk];
        }
        System.out.println(reStr);


发表于 2018-11-08 19:48:22 回复(0)
更多回答
 public String mySubString(String inputString, int from, int to) throws UnsupportedEncodingException {
  // TODO Auto-generated method stub
  byte[] bytes = inputString.getBytes("UTF-8"); 
  
  int size = to;
  if(to > bytes.length)
  {
   size = bytes.length;
  }
  
  byte[] resultBytes = new byte[size - from];
  
  int j = 0;
  for (int i = from; i < size; i++) {
   resultBytes[j] = bytes[i];
   j++;
  }
  
  return new String(resultBytes, "UTF-8");
 }

发表于 2018-11-09 14:53:38 回复(0)

扫一扫,把题目装进口袋

牛客网,程序员必备求职神器

扫描二维码,进入QQ群

扫描二维码,关注牛客网公众号

  • 公司地址:北京市朝阳区大屯路东金泉时代3-808北京牛客科技有限公司
  • 联系方式:010-60728802(电话) admin@nowcoder.com
  • 牛客科技©2018 All rights reserved
  • 京ICP备14055008号-4
  • 京公网安备 11010502036488号