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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

编写函数,从一个字符串中按字节数截取一部分,但不能截取出半个中文(用GBK码表)

例如:从“HM程序员”中截取2个字节是“HM”,截取4个则是“HM程”,截取3个字节也要是"HM"而不要出现半个中文

public static void cutout() throws IOException{
                FileWriter fileWriter =new FileWriter("F:\\bb.txt");//创建一个新文件。并指定目录
                fileWriter.write("HM程序员");//传入字符串。
                fileWriter.flush();//把数据刷到目标文件中。
       
                //用字符流缓冲,读取文件
                File file =new File("F:\\bb.txt");//找到目录文件。
                FileInputStream fileInputStream  =new FileInputStream(file);//建立 数据通道。
                       
                //关闭资源。
                fileInputStream.close();
                fileWriter.close();               
        }
我只会写这么多了,下面的就不知道怎么写了。求大神分析思路。并有代码和注释。谢谢。。。。

3 个回复

倒序浏览
用subString就搞定了啊  
回复 使用道具 举报
911趣购 发表于 2014-4-8 03:07
用subString就搞定了啊

求代码。这个方法不太会用。
回复 使用道具 举报
private static String getChar(String input, int pos)
        {
                int count = 0;    //声明变量
                int i = 0;
                for (;i < input.length() && count < pos; i++)
                {
                        char c = input.charAt(i);
                        if (c > 255) {
                                if (count + 2 <= pos)
                                {
                                    count += 2;
                                } else {
                                    break;
                                }
                        }
                        else
                        {
                                count += 1;
                        }
                }
                return input.substring(0, i);
        }


        public static void main(String[] args)
        {
                sc = new Scanner(System.in);
                System.out.println("输入文字");
                String line = sc.nextLine();
                System.out.println("输入需要截取的字节");
                int pos = sc.nextInt();
                System.out.println(getChar(line, pos));
        }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马