黑马程序员技术交流社区

标题: 帮忙看下我写的代码有错误吗 哪里还需要注意的 [打印本页]

作者: 王先荣    时间: 2015-5-15 13:52
标题: 帮忙看下我写的代码有错误吗 哪里还需要注意的
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);
        }
}
作者: Mr7952    时间: 2015-5-15 19:58
这个版主给力啊,
作者: youngzk    时间: 2015-5-15 21:29
写的好多啊     
作者: 王先荣    时间: 2015-5-18 11:20
Mr7952 发表于 2015-5-15 19:58
这个版主给力啊,

谢谢~~~~~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2