JAVA 按照字节截取字符串

题目:编写一个按照字节来截取字符串的函数,功能类似于String的substring()方法,String类是按照字符截取的,例如“中国abc".substring(1,3),就是返回“国a”,这里要求按照字节,一个英文和数字是一个字节,一个汉字是两个字节,索引包括前面,不包括后面。

/*

 *getBytes:获取字节数量,只接收字符串类型的数据,
 *charAt(i) 获取字符串的第i个索引处的字符
 *如果想转换成字符串,就需要将自己的东西加上”“
 *字符串的长度使用length(),针对的是字符串,
 *字符的长度使用length,针对的是数组
 *汉字截半的时候,ASCII码值是小于0的数值
*/
public class  CutString
{   
   public static void getString(String str,int bnum , int anum ){
           String result="";  //存储最后的截取的字符串
   int j = 0;
   int num = 0; 
   byte[] allstr = str.getBytes();
   if ((anum-bnum)>allstr.length)
   {
   System.out.println("所要截取的字符串超出字符串长度");
   return;
   }
   //1,判断起始位置和末尾位置是不是汉字,(我的输入索引要求包括前索引,但是不包括后索引)
   //    如果起始位置是汉字,而且是汉字的后半部分,则需要把这个汉字截断,就是起始索引加1
   //    如果末尾位置是汉字,而且是汉字的后半部分,则需要将这个汉字截断,就是末尾索引减1
  
    if (allstr[bnum]<0 && bnum%2 !=0)
{
                  bnum+=1;
}
//System.out.println(bnum);
     if (allstr[anum]<0 && anum%2 !=0)
  {
                   anum-=1;
  }
//System.out.println(anum);
//


   for (int i = 0;i <str.length() ;i++ )
{   
char charever =str.charAt(i);
byte[] addesschar=(charever+"").getBytes();

num+=addesschar.length;
//根据下面的判断条件来寻找在索引范围的字符
if (num>bnum  && num<=anum)
{
result += (charever+"");
j++;
}
}
for (int t = 0;t <result.length(); t++)
{
System.out.println(result.charAt(t));
}
   }
public static void main(String[] args) 
{
String str = "我们12jd谁的ueijrkjgor";
getString(str,3,9); //包括index[3],但是不包括index[9];
}
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值