黑马程序员技术交流社区

标题: 如何实现:从字符串中按字节数截取一部份 [打印本页]

作者: 小周务商    时间: 2014-4-7 21:00
标题: 如何实现:从字符串中按字节数截取一部份
编写函数,从一个字符串中按字节数截取一部分,但不能截取出半个中文(用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();               
        }
我只会写这么多了,下面的就不知道怎么写了。求大神分析思路。并有代码和注释。谢谢。。。。


作者: 911趣购    时间: 2014-4-8 03:07
用subString就搞定了啊  
作者: 小周务商    时间: 2014-4-8 23:35
911趣购 发表于 2014-4-8 03:07
用subString就搞定了啊

求代码。这个方法不太会用。
作者: fengzheng    时间: 2014-7-9 17:49
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));
        }




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