为什么会报错啊

为什么会报错啊

package com.zifuchuan;

public class DeamByte1 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
//        将字符串转换为Byte数组
        String str=new String("JAVA 编程 基础");
        byte[] ar=str.getBytes("GDK");
        for(int i=0;ar.length;i++){
            System.out.print(ar[i]+" ");
        }
        System.out.println();
//        将Byte数组转换为字符串
        String str1=new String(ar);
        System.out.println(str1);
    }

}

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕珊 2017-09-11 15:57:14

首先循环里,ar.length这么写肯定不行,此处要是个判断条件,应该为i<ar.length

另外,str.getBytes("GDK")中的GDK应该改成GBK

最后,要加上try-catch捕获异常

祝学习愉快!

  • 这个异常的出现地方应该是下面这里吧,因为在这才会出现解码错误 // 将Byte数组转换为字符串 String str1=new String(ar)
    2018-03-21 14:19:32
  • byte[] ar=str.getBytes("GBK"); 这里就会出错。
    2018-03-21 14:40:37
  • 为什么这里会报错呢?设置编码方式为GBK没问题啊
    2018-03-21 17:01:14
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师