A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.itcast.wang;


/*
*
* 1、编写一个截取字符串的函数,输入为一个字符串和字节数,
* 输出为按字节截取的字符串。但是要保证汉字不被截半个,
* 如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",
* 6,应该输出为"我ABC"而不是"我ABC+汉的半个"。
*
* */
public class Test10 {
        public static void main(String[] args){
                GetSubstring gsb=new GetSubstring();
                String s="你××× is good boy";
                System.out.println(gsb.getSubstring(s,122));
               
        }
}
class GetSubstring{
        public String getSubstring(String s,int i){
                byte[] bys=new byte[i];
                byte[] by=s.getBytes();
                if(i>by.length){
//                        System.out.println("您输入的值已经大于这个字符串的长度了 后面的不能截取,请您重新运行程序:");
                        return "您输入的值已经大于这个字符串的长度了\r 后面的不能截取,\r请您重新运行程序:";
                }
               
//                System.out.println(Arrays.toString(by));
               
                //先找出从0到i(不包括i)之间有多少负数
                int count=0;
                for(int x=0;x<i;x++){
                        if(by[x]<0) count++;
                }
               
                //判断负数的个数,如果能被整除,就取到i-1否则取到i-2
                int y;
                if(count%2==0)
                        y=i-1;
                else y=i-2;
               
                //找到我们想要的字节赋值到另一个数组
                for(int j=0;j<=y;j++){
                        bys[j]=by[j];
                }
                return new String(bys);
        }
}

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

3 个回复

倒序浏览
这个版主给力啊,
回复 使用道具 举报
写的好多啊     
回复 使用道具 举报
Mr7952 发表于 2015-5-15 19:58
这个版主给力啊,

谢谢~~~~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马