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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 勾尧 中级黑马   /  2012-12-27 16:08  /  2267 人查看  /  9 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 勾尧 于 2012-12-28 16:17 编辑

基础测试,键盘输入字符截取,例输入“我是中国人”,4的话,结果为人,即汉字是一个字符,这不就和字母一样了么,但一个汉字不是相当于两个字母么,求助一下

public static void main(String[] args) {              
          String oldstr ;               
          int count  ;                                       
          //键盘输入                       
         BufferedReader bufr =                              
                            new BufferedReader(new InputStreamReader(System.in));               
         try{                       
                    String line = bufr.readLine();                     
                     //将输入存到数组中                     
                     String [] arr = line.split(",");                  
                    //用两个变量记录,字符串和数字            
                     oldstr = arr[0];                     
                     count = Integer.parseInt(arr[1]);                                         
                     //按照输入数字截取字符串                     
                     String newstr = oldstr.substring(count);                     
                     System.out.println(newstr);            
         }catch(IOException e){                     
                         System.out.println("输入异常");               
}      
  }

评分

参与人数 1技术分 +1 收起 理由
邵天强 + 1

查看全部评分

9 个回复

倒序浏览
求助一下,是我的想法有问题,还是我对IO的理解不对,想了好久了
回复 使用道具 举报
你的想法没问题,理解是正确的,电脑本身的默认编码是gbk,如果你将你读取的内容是按gbk读取内容的话,
那么你将你读取的内容在按照utf—8写出去,你就会看出很明显的效果。
  也正是这样才会有字符流和字节流的区别,测试的话你可以使用转换流,你可以试试
回复 使用道具 举报
你的想法没问题,理解是正确的,电脑本身的默认编码是gbk,如果你将你读取的内容是按gbk读取内容的话,
那么你将你读取的内容在按照utf—8写出去,你就会看出很明显的效果。
  也正是这样才会有字符流和字节流的区别,测试的话你可以使用转换流,你可以试试
回复 使用道具 举报
看不懂要求
回复 使用道具 举报
冯伟超 发表于 2012-12-27 22:37
你的想法没问题,理解是正确的,电脑本身的默认编码是gbk,如果你将你读取的内容是按gbk读取内容的话,
那 ...

好,我再看一下IO去,谢谢
回复 使用道具 举报
勾尧 中级黑马 2012-12-27 23:11:49
7#
罗海清 发表于 2012-12-27 22:37
看不懂要求

要求,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”

我的情况是,("abc",2),结果c没问题,但是输入(“我是谁”,2),结果是(谁),按题目来讲,结果应该是“是谁”,大致是这样
回复 使用道具 举报
郭俊 中级黑马 2012-12-27 23:31:49
8#
你这是转换流的编码问题               
            A:字符流 = 字节流 + 编码表
        B:流如果想改变其编码,就要使用转换流。
     用转换流里面有构造方法可以指定编码。
回复 使用道具 举报
我不懂咋么做
回复 使用道具 举报
如1楼所示 试试~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马